1

我尝试对用户输入进行一些验证,并显示输入信息的摘要,并在一切正确时得到用户的确认。我想我需要修改 QWizard FinishButton 的插槽,但我找不到主插槽。

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

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

def do_something():
    #do something 
4

1 回答 1

1

如果您想在按下“完成”按钮后进行验证,那么您必须断开点击信号与相关插槽(例如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()
于 2019-07-16T09:26:38.383 回答