Python 仅在第一页将QWizard.NextButton连接到自定义方法

Python 仅在第一页将QWizard.NextButton连接到自定义方法,python,pyqt,pyqt5,qwizard,qwizardpage,Python,Pyqt,Pyqt5,Qwizard,Qwizardpage,我有一个三页的向导。第一页是BasicSettings(),第二页是InstallPackages(),最后一页是Summary() 我希望第一页上的“下一步”按钮首先执行名为execute\u venv\u create()的方法,然后调用下一页。在接下来的页面中,“下一步”按钮的行为应与往常一样 为此,我将“下一步”按钮连接到execute\u venv\u create(),如下所示: classvenvwizard(QWizard): “”“向导类。”“” 定义初始化(自): super

我有一个三页的向导。第一页是
BasicSettings()
,第二页是
InstallPackages()
,最后一页是
Summary()

我希望第一页上的“下一步”按钮首先执行名为
execute\u venv\u create()
的方法,然后调用下一页。在接下来的页面中,“下一步”按钮的行为应与往常一样

为此,我将“下一步”按钮连接到
execute\u venv\u create()
,如下所示:

classvenvwizard(QWizard):
“”“向导类。”“”
定义初始化(自):
super()。\uuuu init\uuuuu()
# ...
类基本设置(QWizardPage):
“”“这是第一页。”“”
定义初始化(自):
super()。\uuuu init\uuuuu()
# ...
def初始化页面(自我):
下一个按钮=self.wizard().button(QWizard.NextButton)
下一步按钮。单击。连接(self.execute\u venv\u create)
def execute_venv_create(self):
#执行某些操作,然后显示信息消息
QMessageBox.information(自我,“完成”,“消息文本”)
当然,问题是每次单击“下一步”时都会调用该方法,因此我尝试断开按钮并将其重新连接到
QWizard。下一步()
方法如下:

类安装包(QWizardPage):
“”“这是第二页。”“”
定义初始化(自):
super()。\uuuu init\uuuuu()
# ...
def初始化页面(自我):
下一个按钮=self.wizard().button(QWizard.NextButton)
下一个按钮。断开连接()
下一步按钮。单击。连接(QWizard.next)
在第一页,“下一步”按钮如我所料工作,它调用该方法并切换到下一页。但是,在第二页
InstallPackages()
,如果单击Next,GUI将崩溃


这是将
QWizard
按钮连接到自定义方法的正确方法,还是无法使用
QWizardPages
中的向导按钮


如何将
QWizard.NextButton
连接到特定
QWizardPage
的自定义方法,并使按钮在以下页面上正常工作?

您的方法是正确的,但必须使用与可通过该方法获得的页面相关联的对象:

def execute\u venv\u create(self):
#执行某些操作,然后显示信息消息
QMessageBox.information(自我,“完成”,“消息文本”)
下一个按钮=self.wizard().button(QWizard.NextButton)
下一个按钮。断开连接()
下一步按钮。单击。连接(self.wizard().next)