在Qwizard上单击“完成”按钮后打开一个新窗口:Pyqt5

在Qwizard上单击“完成”按钮后打开一个新窗口:Pyqt5,qt,pyqt5,qwizard,Qt,Pyqt5,Qwizard,我想让我的QWizard上的finish按钮除了退出页面外,还可以执行其他操作。我需要将它连接到调用另一个窗口的函数。换句话说,我需要查看Qwizard页面的Finish按钮并向其添加功能。有人知道怎么做吗。谢谢当您按下QPushbutton时,您有QWizard对象吗 如果是: 使用信号和插槽 我不知道它在Python中的样子,但是C++类似于: 连接(my_按钮、信号(单击()、您的_qwizard_对象、插槽(您的_qwizard_插槽()) 当您按下QPushbutton时,您有QWiz

我想让我的QWizard上的finish按钮除了退出页面外,还可以执行其他操作。我需要将它连接到调用另一个窗口的函数。换句话说,我需要查看Qwizard页面的Finish按钮并向其添加功能。有人知道怎么做吗。谢谢

当您按下QPushbutton时,您有QWizard对象吗

如果是:

使用信号和插槽

我不知道它在Python中的样子,但是C++类似于:

连接(my_按钮、信号(单击()、您的_qwizard_对象、插槽(您的_qwizard_插槽())


当您按下QPushbutton时,您有QWizard对象吗

如果是:

使用信号和插槽

我不知道它在Python中的样子,但是C++类似于:

连接(my_按钮、信号(单击()、您的_qwizard_对象、插槽(您的_qwizard_插槽())

我想这里是如何捕捉完成按钮按下事件的答案。 我从未使用PYQT5,但我认为信号和时隙与C++相同。

< P> < /P> 我想这里是如何捕捉完成按钮按下事件的答案。
我从未使用PyQT5,但我认为信号和插槽与C++中的相同。

< P>它与PyQT中已经使用的大部分相同。不同之处在于如何找到完成按钮实体。
import sys
from PyQt5 import QtWidgets, QtCore, QtGui

class IntroPage(QtWidgets.QWizardPage):
    def __init__(self, parent=None):
        super(IntroPage, self).__init__(parent)

class LastPage(QtWidgets.QWizardPage):
    def __init__(self, parent=None):
        super(LastPage, self).__init__(parent)

class MyWizard(QtWidgets.QWizard):
    def __init__(self, parent=None):
        super(MyWizard, self).__init__(parent)

        self.introPage = IntroPage()
        self.lastPage = LastPage()
        self.setPage(0, self.introPage)
        self.setPage(1, self.lastPage)

        # This is the code you need
        self.button(QtWidgets.QWizard.FinishButton).clicked.connect(self._doSomething)

    def _doSomething(self):
        msgBox = QtWidgets.QMessageBox()
        msgBox.setText("Yep, its connected.")
        msgBox.exec()

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    main = MyWizard()
    main.show()
    sys.exit(app.exec_())

请注意我是如何使用这个命令的:
self.button(qtwidts.QWizard.FinishButton)
专门指向finish按钮的。剩下的只是构建自己的方法来做任何需要的事情。在我的示例中,我连接到了
def\u doSomething(self)
并启动了一个非常简单的QMessageBox。

这与您在PyQt中所做的基本相同。不同之处在于如何找到Finish按钮实体。下面是一个工作示例:

import sys
from PyQt5 import QtWidgets, QtCore, QtGui

class IntroPage(QtWidgets.QWizardPage):
    def __init__(self, parent=None):
        super(IntroPage, self).__init__(parent)

class LastPage(QtWidgets.QWizardPage):
    def __init__(self, parent=None):
        super(LastPage, self).__init__(parent)

class MyWizard(QtWidgets.QWizard):
    def __init__(self, parent=None):
        super(MyWizard, self).__init__(parent)

        self.introPage = IntroPage()
        self.lastPage = LastPage()
        self.setPage(0, self.introPage)
        self.setPage(1, self.lastPage)

        # This is the code you need
        self.button(QtWidgets.QWizard.FinishButton).clicked.connect(self._doSomething)

    def _doSomething(self):
        msgBox = QtWidgets.QMessageBox()
        msgBox.setText("Yep, its connected.")
        msgBox.exec()

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    main = MyWizard()
    main.show()
    sys.exit(app.exec_())

请注意我是如何使用这个命令的:
self.button(qtwidts.QWizard.FinishButton)
专门指向finish按钮的。剩下的只是构建自己的方法来做任何需要的事情。在我的示例中,我连接到了
def\u doSomething(self)< /Cord>。启动了一个非常简单的QMeXbox。我需要它来打开QtWIDGET对象。另外,我需要在结论页上的内置完成按钮来执行这个函数并关闭WITARDY谢谢。不过,我必须在Python中理解这个。我对C++的知识很少。完成按钮功能??我想是的。读一下:)我需要它来打开QtWIDGET对象。另外,我需要在结论页上完成内置的按钮来执行这个函数,关闭WITARDY谢谢。不过,我必须在Python中理解这个。我对C++的知识很有限。总之,我必须使用信号槽来重写默认的完成按钮功能吗?我想是的。这是调用向导页的主窗口吗?相反的呢。我有一个功能强大的主窗口窗体,可以独立运行。然而,当从qwizard调用它时,它会显示,但当您单击其中的按钮时会崩溃。这是调用向导页面的主窗口吗?相反的呢。我有一个功能强大的主窗口窗体,可以独立运行。然而,当从qwizard调用它时,它会显示出来,但当您单击其中的按钮时,它会崩溃。高,这在MacOSX和Windows上都能完美地工作。但是,如果向导调用QWidget而不是QMessageBox,则表单会出现并保留在MacOSX上,但在Windows上会很快消失。你知道为什么吗?很高,这在MacOSX和Windows上都能很好地工作。但是,如果向导调用QWidget而不是QMessageBox,则表单会出现并保留在MacOSX上,但在Windows上会很快消失。你知道为什么会这样吗?