如何在Qwizard完成按钮插槽上进行一些验证并在qwizard完成之前获得确认?

时间:2019-07-16 08:58:03

标签: python python-3.x pyqt pyqt5 qwizard

我尝试对用户输入进行一些验证,并显示输入信息的摘要,如果一切正确,请从用户那里确认。我认为我需要修改QWizard FinishButton的插槽,但找不到主插槽。

我尝试这种方式,但是单击完成后向导将立即关闭。

self.button(QtWidgets.QWizard.FinishButton).clicked.connect(self.do_something)

def do_something():
    #do something 

1 个答案:

答案 0 :(得分:0)

如果要在按下“完成”按钮后进行验证,则必须从关联的插槽(例如accept()插槽)中断开所单击的信号,将其连接到新插槽,并且对调用accept()函数:

    # ...
    finish_button = self.button(QtWidgets.QWizard.FinishButton)
    finish_button.disconnect()
    finish_button.clicked.connect(self.finish_validate)

@QtCore.pyqtSlot()
def finish_validate(self):
    button = QtWidgets.QMessageBox.question(self, "Validation", "Is valid?")
    if button == QtWidgets.QMessageBox.Yes:
        self.accept()