我正在使用Qt Designer创建一个QWizardPage。由Qt设计器创建的访问QWizardPage
我已经将文件导入到Qt Creator和它运行良好,到目前为止(我可以生成项目,并运行该向导就好了)
现在我需要重新实现isComplete
功能,但我一个无法了解去做吧。这些页面被命名为wizardPage{,1,2_1,_2}
。我想知道什么是现在重新实现isComplete()
函数的最佳方法。
我正在使用Qt Designer创建一个QWizardPage。由Qt设计器创建的访问QWizardPage
我已经将文件导入到Qt Creator和它运行良好,到目前为止(我可以生成项目,并运行该向导就好了)
现在我需要重新实现isComplete
功能,但我一个无法了解去做吧。这些页面被命名为wizardPage{,1,2_1,_2}
。我想知道什么是现在重新实现isComplete()
函数的最佳方法。
为了使isComplete()
函数超载QWizardPage
,您需要自己创建QWizardPage
。基本上,布局一个窗体 - 就像你会对话 - 只为你想要的页面。为该页面创建一个类。这个类继承QWizardPage
并重新实现isComplete()
用于任何你想要的检查。现在在你的向导中,找到你想要的页面。删除其上的所有小部件,然后右键单击并选择Promote Widget...
。输入您的班级名称和头文件的路径。现在,当你编译时,它应该为你的页面使用你的类的一个实例,包括你的替代isComplete()
。
这意味着我将不得不重新创建所有内容,而是将其创建为QWizardPages而不是普通的QWizard? –
@Hiemanshu Sharma:是的。然而,对于大多数设置来说并不是那么困难。您可以在Qt Designer的相同实例中打开当前向导和新页面小部件,然后从向导中剪切小部件并将其粘贴到页面中。 –
声音可行。真的不应该花那么多时间。 –
如果您想禁用向导的“下一步”按钮,我不确定您想要问什么,但从isComplete()返回false。
当你想启用“下一步”按钮发出completeChanged()信号并返回true。
默认实现已经返回true。所以你甚至可能不需要重写这个方法。
我希望这会有所帮助。
是的。我想实现isComplete(),但我如何访问使用Qt Designer创建的页面。 (所有代码都在编译ui文件时生成的头文件中) –
你不能使用'completeChanged()'信号并将其挂接到一个插槽(函数)进行处理吗? –