创建分支QWizard流

时间:2011-10-14 22:50:05

标签: qt

我正在创建一个数据库驱动的Qt应用程序。如果缺少配置文件(首次运行),则应运行向导以帮助用户配置应用程序。由于数据库设置是此过程的一部分,因此我希望为用户提供创建新数据库或使用现有数据库的能力。能够使用现有数据库非常重要,以防用户导出数据库,获得新计算机或重新安装程序。

但是,我注意到QWizard对象似乎以线性方式进展...您将根据您在代码中将它们添加到主QWizard对象的顺序转到下一页或上一页。基本上,在某一点上,如果用户想要使用现有数据库,则需要将用户带到页面A,如果他们想要创建新数据库或页面B. (等等)。如果他们选择了导致页面A的选项,则用户永远不应该看到页面B.(反之亦然)

由于QWizard似乎想要以完全线性的方式表现而没有分支,因此关于如何做到这一点并不是显而易见的。我想过使用条件语句来检查选择了哪个单选按钮,但是在Qwizard exec()循环启动后,这似乎在运行时没有用。

如果无法做到这一点,那么能够根据以前的选择在运行时重新组装下一页就足够了。

1 个答案:

答案 0 :(得分:3)

您需要创建QWizard的子类并覆盖nextId(),告诉它下一页显示哪个页面。

http://doc.qt.io/qt-5/qwizard.html#creating-non-linear-wizards