Динамические диалоговые окна
Динамическими называются диалоговые окна, которые создаются на основе файлов . ui, сделанных в Qt Designer, во время выполнения приложения. Вместо преобразования файла . ui компилятором uic в программу на С++ мы можем загрузить этот файл на этапе выполнения, используя класс QUiLoader:
QUiLoader uiLoader;
QFile file("sortdialog.ui");
QWidget *sortDialog = uiLoader.load(&file);
if (sortDialog) {
}
Мы можем осуществлять доступ к дочерним виджетам формы при помощи функции QObject:: findChild<T>():
QComboBox *primaryColumnCombo =
sortDialog->findChild<QComboBox *>("primaryColumnCombo"); if (primaryColumnCombo) {
}
Функция findChild<T>() является шаблонной функцией-членом, которая возвращает дочерний объект по заданному имени и типу. Эта функция отсутствует для MSVC 6 из-за ограничений этого компилятора. Если вам необходимо использовать компилятор MSVC 6, вместо этой функции следует вызывать глобальную функцию qFindChild<T>(), которая работает точно так же.
Класс QUiLoader расположен в отдельной библиотеке. Для использования класса QUiLoader в приложении Qt мы должны добавить в файл . pro следующую строку:
CONFIG += uitools
Динамические диалоговые окна позволяют изменять компоновку элементов формы без повторной компиляции приложения. Они могут также использоваться для создания «тонких» клиентских приложений, когда в исполняемый модуль встраивается только основная форма пользовательского интерфейса, а все другие формы создаются по мере необходимости.
<< назад вперед >>