如何在每个QWizardPage可访问的主QWizard中创建getter / setter?

时间:2015-03-24 14:02:29

标签: c++ qt

我在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之间的变量。谢谢!

1 个答案:

答案 0 :(得分:0)

我通过在setDaddy(MainWizard *daddy)的每一个中创建QWizardPages来解决此问题。在MainWizard()的构造函数中,我调用了Page->setDaddy(this)。现在每个QWizardPage都可以访问MainWizard中的所有设置者/获取者。