|  | Home · Examples

# Trivial Wizard Example

The Trivial Wizard example illustrates how to create a linear three-page registration wizard using three instances of QWizardPage and one instance of QWizard.

## 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.
The following code example is written in c++.

    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.
The following code example is written in c++.

    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.
The following code example is written in c++.

    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

`main()` 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.
The following code example is written in c++.

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

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