Название: О формах.. Отправлено: brucemax от Ноября 10, 2011, 10:13 Здравствуйте.. Картина такая.. есть приложение, внизу формы ряд кнопок, которые присутствуют всегда.. В процессе работы меняется только содержание над кнопками.. Можно ли сделать (и как) так, что бы кнопки как бы находились на отдельной форме.. а сверху по необходимости выводить формы с информацией.. а не рисовать на каждой форме те же кнопки и подключать их заново..?? Может туманно объяснил.. тогда извините) (опыта пока совсем нету)) Спасибо заранее!)
Название: Re: О формах.. Отправлено: kambala от Ноября 10, 2011, 11:39 поместить кнопки на отдельный виджет
Название: Re: О формах.. Отправлено: brucemax от Ноября 10, 2011, 12:02 Нашёл класс.. stackedWidget.. который может хранить страницы.. (то есть кнопки находяться вне stackedWidget, а всё остальное там)теперь возник вопрос можно ли в качестве очередной страницы использовать другую форму, сделанную в отдельном файле *.ui. И если да, то как это сделать..?
Название: Re: О формах.. Отправлено: twp от Ноября 10, 2011, 12:07 QUiLoader QFormBuilder
Название: Re: О формах.. Отправлено: brucemax от Ноября 10, 2011, 14:14 QUiLoader QFormBuilder Нашёл у Бланшета такой пример..Код: QUiLoader uiLoader; Название: Re: О формах.. Отправлено: brucemax от Ноября 10, 2011, 15:11 Вот пример приведу.. делаю я главную форму в дизайнере.. внизу кнопки.. сверху stackWidget.. и хочу чтобы в роли страниц в этом stackWidget выступали созданные мной в отдельных ui файлах формы. То есть исходный файл главной формы у меня такой:
Код: #include <QFormBuilder> Название: Re: О формах.. Отправлено: Странник от Ноября 10, 2011, 15:46 class QFormBuilder уберите.
Название: Re: О формах.. Отправлено: twp от Ноября 10, 2011, 15:48 To link against the module, add this line to your qmake .pro file:
CONFIG += designer Название: Re: О формах.. Отправлено: brucemax от Ноября 10, 2011, 16:27 Вот так заработало:!!!
Код: #include "okno.h" Название: Re: О формах.. Отправлено: brucemax от Ноября 10, 2011, 16:29 To link against the module, add this line to your qmake .pro file: CONFIG += designer Для QUiLoder я писал в профайле: CONFIG += uitools и оно заработало.. в чём разница? Название: Re: О формах.. Отправлено: twp от Ноября 10, 2011, 16:50 в разных модулях находятся. Если посмотреть в верху в асистенте то там есть такое
Home > Modules > QtUiTools > QUiLoader Home > Modules > QtDesigner > QFormBuilder просто тогда заходишь на страницу модуля и находишь что нужно добавить в pro файл Название: Re: О формах.. Отправлено: brucemax от Ноября 10, 2011, 17:20 в разных модулях находятся. Если посмотреть в верху в асистенте то там есть такое Спасибо!!! Большое! А если нетрудно.. вот хочу чтобы кнопка созданная в дизайнере на главной форме закрывала эту загруженную форму.. пишу..Home > Modules > QtUiTools > QUiLoader Home > Modules > QtDesigner > QFormBuilder просто тогда заходишь на страницу модуля и находишь что нужно добавить в pro файл Код: #include "okno.h" QPushButton pushButton_1; она пишет ‘pushButton_1’ was not declared in this scope. Когда декларирую пишет: ошибка: no matching function for call to ‘okno::connect(QPushButton&, const char [11], QWidget*&, const char [9])’, а вот когда декларирую как указатель QPushButton *pushButton_1 оно компилируется, но с ворнингом и кнопка не работает.. А в чём кстати отличие QUiLoder от QFormBuilder.. читал литературу там в описании QUiLoder сказано: If you have a custom component or an application that embeds Qt Designer, you can also use the QFormBuilder class provided by the QtDesigner module to create user interfaces from UI files. Но в чём отличие всё равно не понял.... Название: Re: О формах.. Отправлено: kambala от Ноября 10, 2011, 18:30 а не проще создать свой класс-наследник QWidget? :)
Название: Re: О формах.. Отправлено: joker от Ноября 11, 2011, 06:34 а не проще создать свой класс-наследник QWidget? :) ага, ага :) имхо слишком сильно углубились в не совсем подходящую технологию. Я такое (ну подобное) реализовал так: На MainWindow кладется виджет (ну centralWidget). В этом виджете - 2 других виджета (точнее сначала один - кнопки (у меня слева были) и рабочий. Виджет с кнопками загнан в минимально необходимые размеры. При жмяке кнопок создаем свой виджет (любой) и добавляем его в свой (ну и там удаляем предыдущий, если такой был). Название: Re: О формах.. Отправлено: brucemax от Ноября 11, 2011, 10:36 Я такое (ну подобное) реализовал так: На MainWindow кладется виджет (ну centralWidget). В этом виджете - 2 других виджета (точнее сначала один - кнопки (у меня слева были) и рабочий. Виджет с кнопками загнан в минимально необходимые размеры. При жмяке кнопок создаем свой виджет (любой) и добавляем его в свой (ну и там удаляем предыдущий, если такой был). Код: #include "okno.h" но есть проблемка.. надо чтобы пр и изменении размеров главного оокна изменялись и размеры фложенной в widget формы.. а она этого не делает.. при том что к загружаемой форме применен компоновщик по сетке.. и установлена политика expanding.. виджет на главной форме (куда вставляется загружаемая) тоже с политикой expanding.. и ко всей главной форме применён компоновщик.. а загружаемая форма всё равно не масштабируется вместе с главной.. В чём может быть проблема?? Помогите пожалуста.. может я что упустил.. Название: Re: О формах.. Отправлено: brucemax от Ноября 11, 2011, 16:29 Никто не сталкивался или никто не знает??!! ???
Название: Re: О формах.. Отправлено: brucemax от Ноября 11, 2011, 18:06 УРА!!! Заработало!!! Как говориться если хочешь что б что-то сделалось поручи это себе..=)
Я посмотрел в файле ui_*.h который получается из xml-евкого главной формы.. что вставляемый в мой виджет дочерний виджет(добавленный на главную форму нпосредственно в дизайнере) момещается в компановщик который применён к этому главному виджету.. отсюда вывод.. добавить строчку: Код: ui->gridLayout->addWidget(prbar); З.ы. Извините, что я такой назойливый с этой темой.. но мало ли кому понадобиться)) |