Динамические диалоговые окна

   
На этом шаге рассмотрим создание динамических диалоговых окон.

   
Динамическими называются диалоговые окна, которые создаются на основе
файлов .ui, сделанных в Qt Designer, во время выполнения приложения. Вместо преобразования файла .ui компилятором uic в программу на C++ мы можем загрузить этот файл на этапе выполнения, используя класс 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

   
Динамические диалоговые окна позволяют изменять компоновку элементов
формы без повторной компиляции приложения. Они могут также
использоваться для создания "тонких" клиентских приложений, когда в исполняемый модуль встраивается только основная форма пользовательского интерфейса, а все другие формы создаются по мере необходимости.

   
На следующем шаге начнем рассматривать создание главных окон.

Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий