Название: Как подменить QWidget на свой? Отправлено: stealth от Апрель 09, 2008, 09:40 Здравствуйте!
В дизайнере создана формочка и есть элемент QWidget widget. В программе нужно заменить этот widget на свой QWidget mywidget. Подскажите как это сделать? ??? Название: Re: Как подменить QWidget на свой? Отправлено: Dodge от Апрель 09, 2008, 10:55 Здравствуйте! В дизайнере создана формочка и есть элемент QWidget widget. В программе нужно заменить этот widget на свой QWidget mywidget. Подскажите как это сделать? ??? разврат какойто :D... поправте в генерируемом uic'ом файле код Название: Re: Как подменить QWidget на свой? Отправлено: Karl-Philipp от Апрель 09, 2008, 11:24 Здравствуйте! В дизайнере создана формочка и есть элемент QWidget widget. В программе нужно заменить этот widget на свой QWidget mywidget. Подскажите как это сделать? ??? разврат какойто :D... поправте в генерируемом uic'ом файле код Dodge, возможно я ошибаюсь, но ведь не рекомендуют править в генерируемом uic'ом файле код ??? Название: Re: Как подменить QWidget на свой? Отправлено: uku от Апрель 09, 2008, 12:24 Right Button Menu -> Promote To...
Разве не видели такого? Название: Re: Как подменить QWidget на свой? Отправлено: stealth от Апрель 09, 2008, 16:07 по идее можно реализовать так:
вставить QTabWidget и потом уже использовать: int QTabWidget::addTab ( QWidget * page, const QString & label ) но вот хотелось бы научиться заменять произвольный QWidget "на лету" :) а с "Promote to" без header файлов получается никак? Просто делаю модуль на PyQT, а там этих заголовочников нет. Название: Re: Как подменить QWidget на свой? Отправлено: Bogdan от Апрель 10, 2008, 05:25 Я сделал это приблизительно так:
- в Дизайнере на Форму поклал в нужном месте QWidget Contaner - там же создал набор отдельных виджетов, например, Form_1, Form_2 и т.п. - дальше в коде QWidget *form_ = new QWidget; QVBoxLayout *vbox = new QVBoxLayout; Contaner->setLayout(vbox); - дальше по некоторому условию if (T=1) { Form_1 *form_0 = new Form_1; form_=form_0; } if (T=2) { Form_2 *form_0 = new Form_2; form_=form_0; } ................. - после этого form_->setParent(Contaner); vbox->addWidget(form_); Contaner->adjustSize(); .......................... и т.д. У меня работает так: в зависимости от условия на Форму ложится соответствующий виджет и нормально выравнивается. Я так понимаю ты этого хотел? Название: Re: Как подменить QWidget на свой? Отправлено: Alex03 от Апрель 10, 2008, 06:14 Я тоже делал через дополнительный QWidget в дизайнере, но ИМХО лишнее это.
Жалко что в 4.х.х, в отличии от 3.х.х, нельзя в дизайнере поименовать лэйаут. Название: Re: Как подменить QWidget на свой? Отправлено: stealth от Апрель 10, 2008, 09:19 Bogdan, спасибо за полное описание реализации! Да, это именно то, что нужно.
Название: Re: Как подменить QWidget на свой? Отправлено: Dodge от Апрель 10, 2008, 17:35 Dodge, возможно я ошибаюсь, но ведь не рекомендуют править в генерируемом uic'ом файле код ??? это ежу понятно, но какая задача такое и решение... пардонИМФО если уж вы в дезайнере проектируете ui, то вы этот ui проектируете ТОЛЬКО в дезайнере... пишите плагины для дизайнера со своими виджетами, это совсем не сложно... изобрести велосипед не проблема, просто все изобретают свой, соответственно одни умеют кататся на одних велосипедах, др на других... бардаг! |