- Qt 5.5
- Qt Widgets
- Trivial Wizard Example
- Qt 5.5.1 Reference Documentation

# Trivial Wizard Example

## Introduction Page

The introduction page is created with the `createIntroPage()` function where a QWizardPage is created and its title is set to "Introduction". A QLabel is used to hold the description of `page`. A QVBoxLayout is used to hold the `label`. This `page` is returned when the `createIntroPage()` function is called.

    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;
    }

## Registration Page

The registration page is created with the `createRegistrationPage()` function. QLineEdit objects are used to allow the user to input a name and an e-mail address. A QGridLayout is used to hold the QLabel and QLineEdit objects.

    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;
    }

## Conclusion Page

The conclusion page is created in the `createConclusionPage()` function. This function's content is similar to `createIntroPage()`. A QLabel is used to inform the user that the registration process has completed successfully.

    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()` Function

The `main()` function instantiates a QWizard object, `wizard`, and adds all three QWizardPage objects to it. The `wizard` window title is set to "Trivial Wizard" and its `show()` function is invoked to display it.

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

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

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

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

        return app.exec();
    }

Files:

- dialogs/trivialwizard/trivialwizard.cpp
- dialogs/trivialwizard/trivialwizard.pro

See also QWizard, Class Wizard Example, and License Wizard Example.