我在Qt Creator中创建了一个QWizard。我的向导页面都是自定义的,并被提升为自定义类。我已经尝试将parentWidget()作为主要向导类型进行转换,我也尝试通过QWizardPages构造函数传递父作为QWizard页面类型(在我的情况下为MainWizard)。
经过进一步调查,我注意到在创建QWizardPages时,他们没有收到父对象!这是在生成的代码(ui_mainwizard.h)中完成的。
page1 = new IntroPage();
page1->setObjectName(QStringLiteral("page1"));
MainWizard->addPage(page1);
wizardPage2 = new OptionsPage();
wizardPage2->setObjectName(QStringLiteral("wizardPage2"));
MainWizard->addPage(wizardPage2);
等...
所以这意味着我的方法无法正常工作!我需要保存的变量主要是代表文件名的QStrings,以及我的一些API类中的自定义对象。现场机制是我最好的选择吗?或者也许某种类型的全球对象?我真的不确定如何使所有部分适合我可以访问这些部分的地方'全球'我所有QWizardPages之间的变量。谢谢!
答案 0 :(得分:0)
我通过在setDaddy(MainWizard *daddy)
的每一个中创建QWizardPages
来解决此问题。在MainWizard()
的构造函数中,我调用了Page->setDaddy(this)
。现在每个QWizardPage
都可以访问MainWizard
中的所有设置者/获取者。