Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Пример "Trivial Wizard"

Файлы:

Пример "Trivial Wizard" иллюстрирует как создать линейный трехстраничный мастер регистрации используя три экземпляра класса QWizardPage и один экземпляр класса QWizard.

Вводная страница

Вводная страница создается с помощью функции createIntroPage(), где создается QWizardPage и устанавливается его заголовок равным "Introduction". QLabel используется для хранения описания page. QVBoxLayout используется для хранения метки label. Эта страница page возвращается когда вызывается функция createIntroPage().

 QWizardPage *createIntroPage()
 {
     QWizardPage *page = new QWizardPage;
     page->setTitle("Introduction");

     QLabel *label = new QLabel("This wizard will help you register your copy "
                                "of Super Product Two.");
     label->setWordWrap(true);

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(label);
     page->setLayout(layout);

     return page;
 }

Страница регистрации

Страница регистрации создается с помощью функции createRegistrationPage(). Объекты QLineEdit используются чтобы позволить пользователю ввести имя и электронный адрес. QGridLayout используется для хранения объектов QLabel и QLineEdit.

 QWizardPage *createRegistrationPage()
 {
     QWizardPage *page = new QWizardPage;
     page->setTitle("Registration");
     page->setSubTitle("Please fill both fields.");

     QLabel *nameLabel = new QLabel("Name:");
     QLineEdit *nameLineEdit = new QLineEdit;

     QLabel *emailLabel = new QLabel("Email address:");
     QLineEdit *emailLineEdit = new QLineEdit;

     QGridLayout *layout = new QGridLayout;
     layout->addWidget(nameLabel, 0, 0);
     layout->addWidget(nameLineEdit, 0, 1);
     layout->addWidget(emailLabel, 1, 0);
     layout->addWidget(emailLineEdit, 1, 1);
     page->setLayout(layout);

     return page;
 }

Итоговая страница

Итоговая страница создается в функции createConclusionPage(). Содержимое этой функции аналогично createIntroPage(). QLabel используется для информирования пользователя о том, что процесс регистрации успешно завершен.

 QWizardPage *createConclusionPage()
 {
     QWizardPage *page = new QWizardPage;
     page->setTitle("Conclusion");

     QLabel *label = new QLabel("You are now successfully registered. Have a "
                                "nice day!");
     label->setWordWrap(true);

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(label);
     page->setLayout(layout);

     return page;
 }

Функция main()

Функция main() создает экземпляр объекта QWizard, wizard, и добавляет в него все три объекта QWizardPage. Заголовок окна wizard устанавливается равным "Trivial Wizard", а его функция show() вызывается чтобы отобразить его.

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QString translatorFileName = QLatin1String("qt_");
     translatorFileName += QLocale::system().name();
     QTranslator *translator = new QTranslator(&app);
     if (translator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
         app.installTranslator(translator);

     QWizard wizard;
     wizard.addPage(createIntroPage());
     wizard.addPage(createRegistrationPage());
     wizard.addPage(createConclusionPage());

     wizard.setWindowTitle("Trivial Wizard");
     wizard.show();

     return app.exec();
 }

Смотрите также QWizard, Пример "Class Wizard" и Пример "License Wizard".


Copyright © 2008 Trolltech Торговые марки
Qt 4.3.5