如何在 Qwizard 完成按钮插槽上进行一些验证并在 qwizard 完成之前获得确认?
How to put some validation on Qwizard finish button slot and get confirmation before qwizard finishing?
我尝试对用户输入进行一些验证并显示输入信息的摘要,并从用户那里确认一切是否正确。我想我需要修改 QWizard FinishButton 的插槽,但我找不到主插槽。
我试过这种方式,但向导在完成单击后立即关闭。
self.button(QtWidgets.QWizard.FinishButton).clicked.connect(self.do_something)
def do_something():
#do something
如果你想在按下 "Finish" 按钮后验证,那么你必须断开点击信号与相关插槽的连接(例如 accept() slot), connect it to the new slot and if it is valid to call the 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()
我尝试对用户输入进行一些验证并显示输入信息的摘要,并从用户那里确认一切是否正确。我想我需要修改 QWizard FinishButton 的插槽,但我找不到主插槽。
我试过这种方式,但向导在完成单击后立即关闭。
self.button(QtWidgets.QWizard.FinishButton).clicked.connect(self.do_something)
def do_something():
#do something
如果你想在按下 "Finish" 按钮后验证,那么你必须断开点击信号与相关插槽的连接(例如 accept() slot), connect it to the new slot and if it is valid to call the 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()