我希望在允许下一页传递之前单击下一个按钮时执行一些操作(例如运行一个函数),当我尝试使用connect执行它时我发现下一页的操作已经执行(即使它没有显示,意味着其他一些线程已经在运行下一个线程'动作)。
有没有办法在单击下一个按钮之前执行某些操作,并且由于此操作决定是否允许下一页?
我尝试过类似的事情:
self.ui.button(QtGui.QWizard.NextButton).clicked.connect(self._check_stuff)
但是当调用check的东西时,已经有线程运行下一个窗口'动作。任何人吗?
谢谢!
有人建议我应该覆盖validatePage,这听起来就像我想要的那样,但为此我必须继承QWizard(我已经尝试覆盖它的成员但是它没有用,我的QWizard是通过代码和设计师如:)
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Wizard</class>
<widget class="QWizard" name="Wizard">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>920</width>
<height>525</height>
</rect>
</property>
<property name="windowTitle">
<string>Wizard</string>
</property>
<property name="wizardStyle">
<enum>QWizard::MacStyle</enum>
</property>
<property name="options">
<set>QWizard::CancelButtonOnLeft</set>
</property>
</widget>
<resources/>
<connections/>
</ui>
然后在我做的代码中:
self._ui = QtUiTools.QUiLoader().load("setup_wizard.ui")
如何创建我的特定WQizard并在代码中指定它?我尝试了完整的python路径包..没有工作等..
答案 0 :(得分:1)
如果不允许下一页,您可以重新实现QWizard::validateCurrentPage()
,返回false
。