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 를 인스턴스화하고, 세 개의 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 예제도참조하십시오 .
© 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.