| |
Динамическими называются такие диалоги, которые создаются на основе .ui файлов во время работы программы (то бишь "на лету"). В случае с динамическими диалогами, файлы .ui не конвертируются утилитой uic в код C++, а загружаются программой во время исполнения, с помощью класса QWidgetFactory, примерно таким образом:
QDialog *sortDialog = (QDialog *) QWidgetFactory::create("sortdialog.ui");Доступ к виджетам на форме такого диалога осуществляется вызовом функции QObject::child():
QComboBox *primaryColumnCombo = (QComboBox *) sortDialog->child("primaryColumnCombo", "QComboBox");Эта функция возвращает "пустой" указатель, если на форме диалога не был найден виджет с заданным именем и типом.
Класс QWidgetFactory размещен в отдельной библиотеке. Чтобы иметь возможность работы с классом QWidgetFactory из Qt приложений, необходимо добавить такую строчку в .pro файл:
LIBS += -lquiЭтот синтаксис одинаков для любой платформы, даже при том, что он определенно имеет отношение к Unix.
Динамические диалоги позволяют изменять компоновку формы без необходимости пересборки приложения. Исчерпывающий пример работы с динамическими диалогами вы найдете в главе "Subclassing and Dynamic Dialogs" справочного руководства к Qt Designer.
Пред. | В начало | След. |
Диалоги с изменяющимся внешним видом. | На уровень выше | Встроенные виджеты и классы диалогов. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |