2012-05-24 2 views
1

Я начал свое первое программирование шагов в Qt и не нашел ответа. У меня есть виджет, допустим, он называется «вкладка». Я хочу добавить к нему новый виджет. я могу сделать это, написав:Добавление виджета в макет, указанный в QString

QLabel *label = new QLabel(tab); 

Я хочу сделать то же самое, но вместо того, чтобы сказать «вкладка» Я хочу использовать виджет имя хранящегося в переменной QString. Нечто подобное (но он не работает, не может конвертировать QString в QWidget):

QString name = "tab"; 
QLabel *label = new label(zakladka); 

Возможно ли это?

+1

** zakladka **, на самом деле? – karlphillip

+0

Это невозможно. Имена переменных не взаимозаменяемы со строками. Возможно, вы можете объяснить, что вы пытаетесь сделать, и мы можем помочь вам найти лучшее решение. – Anthony

+0

У меня есть несколько вкладок. Я хочу прочитать имя вкладки из текстового файла и поместить объект на эту конкретную вкладку. – pablocoo

ответ

3

QObjects имеет свойство objectName. Так что если вы называете свои объекты и иметь их быть частью иерархии QObject (т.е. вы знаете, что они являются детьми родительского объекта), вы можете использовать findChild

QLabel* label = new QLabel(parentWidget->findChild(name)); 
+0

Спасибо, похоже, трюк :) – pablocoo

Смежные вопросы