「Trivial Wizard」の例
「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 オブジェクトは、ユーザーが名前とメールアドレスを入力できるようにするために使用されます。QGridLayout は、QLabel およびQLineEdit オブジェクトを保持するために使用されます。
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);
#if QT_CONFIG(translation)
QTranslator translator;
for (const QString &trPath : QLibraryInfo::paths(QLibraryInfo::TranslationsPath)) {
if (translator.load(QLocale(), u"qtbase"_s, u"_"_s, trPath)) {
app.installTranslator(&translator);
break;
}
}
#endif
QWizard wizard;
wizard.addPage(createIntroPage());
wizard.addPage(createRegistrationPage());
wizard.addPage(createConclusionPage());
wizard.setWindowTitle("Trivial Wizard");
wizard.show();
return app.exec();
}「 QWizard 」 および「License Wizard Example」も参照してください 。
© 2026 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.