На этом шаге рассмотрим диалоговое окно мастера.
Диалоговые окна мастера были придуманы для сопровождения пользователя при выполнении им операций, которые требуют непосредственного его участия. Для навигации по страницам диалогового окна мастера используются две кнопки: Next (Вперед) и Back (Назад). Пользователь не имеет возможности сразу отобразить интересующую его страницу окна, не пройдя все предшествующие страницы, что гарантирует выполнение всех пунктов, содержащихся в этих диалоговых окнах.
Для создания класса мастера нужно унаследовать класс QWizard и добавить каждую новую страницу диалогового окна вызовом метода addPage(). В этот метод нужно передать указатель на виджет QWizardPage, в котором вызовом метода setTitle() можно установить строку заголовка, а при помощи класса компоновки разместить все необходимые виджеты. О кнопках для продвижения вперед и назад беспокоиться не нужно, поскольку они уже сконфигурированы для смены страниц. В листинге реализован класс мастера с двумя страницами, содержащими виджеты из ранее рассмотренных примеров (см. рис. 1).
Рис.1. Диалоговое окно мастера
class Wizard : public QWizard { private: QWizardPage* createPage(QWidget* pwgt, QString strTitle) { //указатель на виджет QWizardPage QWizardPage* ppage = new QWizardPage; //строка заголовка ppage->setTitle(strTitle); //размещение виджетов QVBoxLayout* playout = new QVBoxLayout; playout->addWidget(pwgt); ppage->setLayout(playout); return ppage; } public: Wizard(QWidget* pwgt = 0) : QWizard(pwgt) { //добавление страниц диалогового окна мастера addPage(createPage(new SB, "Рамка:")); addPage(createPage(new lw, "Операционная система:")); } };
Файлы приложения можно взять здесь.
На следующем шаге рассмотрим диалоговые окна сообщений.