简单向导示例
简单向导示例演示了如何使用三个 QWizardPage 实例和一个 QWizard 实例创建一个线性三页注册向导。
简介页面
简介页面是通过 createIntroPage()
函数创建的,其中创建了一个 QWizardPage 并将其标题设置为 "简介"。使用 QLabel 来保存页面描述。使用 QVBoxLayout 来保存 label
。当调用 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
窗口标题设置为 "简单向导",并调用其 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(); }
© 2024 Qt 公司有限公司。本文件内包含的文档贡献是其相应所有者的版权。本文件提供的文档遵循免费软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款。Qt 以及相应的标志是芬兰的 Qt 公司在芬兰及/或其他国家/地区的商标。所有其他商标均为各自所有者的财产。