些細なウィザードの例

Trivial Wizard の例では、QWizardPage のインスタンス 3 つと、QWizard のインスタンス 1 つを使用して、直線的な 3 ページの登録ウィザードを作成する方法を説明します。

導入ページ

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 オブジェクトは、ユーザーが名前と電子メールアドレスを入力するために使用されます。QLabelQLineEdit オブジェクトを保持するためにQGridLayout が使われます。

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 をインスタンス化し、3 つのQWizardPage オブジェクトをすべて追加します。wizard ウィンドウ・タイトルは "Trivial Wizard "に設定され、show() 関数が呼び出されて表示される。

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

プロジェクト例 @ code.qt.io

QWizardLicense 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.