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 .

../_images/trivialwizard-example-flow.png

Introduction Page

../_images/trivialwizard-example-introduction.png

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.

createIntroPage = QWizardPage()

    page = QWizardPage()
    page.setTitle("Introduction")
    label = QLabel("This wizard will help you register your copy "()
                               "of Super Product Two.")
    label.setWordWrap(True)
    layout = QVBoxLayout()
    layout.addWidget(label)
    page.setLayout(layout)
    return page

Registration Page

../_images/trivialwizard-example-registration.png

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.

createRegistrationPage = QWizardPage()



    page = QWizardPage()
    page.setTitle("Registration")
    page.setSubTitle("Please fill both fields.")
    nameLabel = QLabel("Name:")
    nameLineEdit = QLineEdit()
    emailLabel = QLabel("Email address:")
    emailLineEdit = QLineEdit()
    layout = 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

../_images/trivialwizard-example-conclusion.png

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.

createConclusionPage = QWizardPage()



    page = QWizardPage()
    page.setTitle("Conclusion")
    label = QLabel("You are now successfully registered. Have a "()
                               "nice day!")
    label.setWordWrap(True)
    layout = 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.

if __name__ == "__main__":


    app = QApplication([])
#ifndef QT_NO_TRANSLATION
    translatorFileName = "qtbase_"
    translatorFileName += QLocale.system().name()
    translator = QTranslator(app)
    if (translator.load(translatorFileName, QLibraryInfo.path(QLibraryInfo.TranslationsPath)))
        app.installTranslator(translator)
#endif
    wizard = QWizard()
    wizard.addPage(createIntroPage())
    wizard.addPage(createRegistrationPage())
    wizard.addPage(createConclusionPage())
    wizard.setWindowTitle("Trivial Wizard")
    wizard.show()
    sys.exit(app.exec())

Example project @ code.qt.io