【问题标题】:How to put some validation on Qwizard finish button slot and get confirmation before qwizard finishing?如何在 Qwizard 完成按钮插槽上进行一些验证并在 Qwizard 完成之前获得确认?
【发布时间】:2019-11-24 23:23:39
【问题描述】:

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

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

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

def do_something():
    #do something 

【问题讨论】:

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


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多