Triviales Assistenten-Beispiel

Das Beispiel für einen trivialen Assistenten veranschaulicht, wie man einen linearen dreiseitigen Registrierungsassistenten mit drei Instanzen von QWizardPage und einer Instanz von QWizard erstellt.

Einführungsseite

Die Einführungsseite wird mit der Funktion createIntroPage() erstellt, wobei eine QWizardPage erstellt und ihr Titel auf "Einführung" gesetzt wird. Ein QLabel wird verwendet, um die Beschreibung von page zu speichern. Ein QVBoxLayout wird verwendet, um die label zu speichern. Diese page wird zurückgegeben, wenn die Funktion createIntroPage() aufgerufen wird.

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

Registrierungsseite

Die Registrierungsseite wird mit der Funktion createRegistrationPage() erstellt. QLineEdit Objekte werden verwendet, damit der Benutzer einen Namen und eine E-Mail-Adresse eingeben kann. Ein QGridLayout wird verwendet, um die Objekte QLabel und QLineEdit aufzunehmen.

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

Abschluss-Seite

Die Abschlussseite wird mit der Funktion createConclusionPage() erstellt. Der Inhalt dieser Funktion ist ähnlich wie bei createIntroPage(). Ein QLabel wird verwendet, um dem Benutzer mitzuteilen, dass der Registrierungsprozess erfolgreich abgeschlossen wurde.

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() Funktion

Die Funktion main() instanziiert ein QWizard Objekt, wizard, und fügt ihm alle drei QWizardPage Objekte hinzu. Der Titel des wizard Fensters wird auf "Trivial Wizard" gesetzt und die Funktion show() wird aufgerufen, um es anzuzeigen.

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

#ifndef QT_NO_TRANSLATION
    QString translatorFileName = QLatin1String("qtbase_");
    translatorFileName += QLocale::system().name();
    QTranslator *translator = new QTranslator(&app);
    if (translator->load(translatorFileName, QLibraryInfo::path(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();
}

Beispielprojekt @ code.qt.io

Siehe auch QWizard und License Wizard Example.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.