Динамически создавать объекты, и и как на них повесить сигналы? |
Здравствуйте, гость ( Вход | Регистрация )
Динамически создавать объекты, и и как на них повесить сигналы? |
Litkevich Yuriy |
7.1.2011, 13:24
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Вот в этом коде:
во-вторых, QFrame *lab =new QFrame; лишний, т.к. QLabel уже наследник QFrame и, соответственно, обладает всеми его свойствами.в-третьих, lab->setLayout (lay); устанавливает компоновщик для рамки, однако у рамки нет родителя, поэтому она - виджет верхнего уровня (окно), ну а до вызова show() она просто не показывается. Ну и, во-первых, если ты установишь (как и полагается) компоновщик для самого ButtonOnLabel, а не для рамки то, что метка должна будет сделать со своим текстом? Где относительно текста должны будут появится виджеты? Вообще ни к чему было наследоватся от метки. Надо было идти простым путём - наследоваться от QWidget или QFrame (только если рамка нужна). Обычное правило при выборе базового класса - выбрать наименьшую необходимую функциональность. Сложные виджеты в качестве базового класса выбирают, когда хотят изменить их функциональность, например, нужен фоновый рисунок у метки. А у тебя полностью новый, сложный (состоящий из нескольких) виджет. ButtonOnLabel::setText ("'это я вижу"); это возможно будет работать, но написано не корректно. Так вызывают метод базового класса внутри наследника, а базовый класс - QLabel. Поэтому запись должна выглядеть так:
|
|
|
eriser |
7.1.2011, 14:37
Сообщение
#12
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 6.1.2011 Пользователь №: 2328 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо -помогло! Унаследовался от QWidget (а так-же QFrame) и всё заработало!
Дальше предстоит установить слоты на эти боксы, думаю разберусь. |
|
|
Текстовая версия | Сейчас: 14.1.2025, 7:52 |