我有一组按钮,确定和取消
buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok|
QtGui.QDialogButtonBox.Cancel)
点击Cancel
self.connect(buttonBox, SIGNAL("rejected()"),
self, SLOT("reject()"))
def reject(self):
print 'hello'
self.emit(SIGNAL("reject()"))
我不确定要发射什么。我不想只是关闭这件事。当我按QMessageBox
时,我知道如何创建X
。我想在reject
中进行提示和结束。
我希望这是有道理的。感谢。
为了您的信息,当我按X
关闭整个应用程序时,我有一个覆盖方法
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(self, 'Message', 'Are you sure to quit?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
此覆盖self.close()
方法。
答案 0 :(得分:1)
你不发射任何东西。 QDialog
有一个reject()
位,可将返回码设置为Rejected
并关闭对话框。你需要打电话给那个。您也将自定义插槽命名为reject
,从而覆盖它。你仍然可以这样称呼它:
super(NameOfClass, self).reject()
或将您的广告位名称更改为其他内容并使用:
self.reject()
在那里。
答案 1 :(得分:0)
您可能想要覆盖QDialog类的accept()函数。
例如:
def accept(self):
if your_validation_userconfirmation_fct():
self.done(QtWidgets.QDialog.Accepted)
答案 2 :(得分:0)
让我们覆盖accept()函数。
def accept(self):
if validation_ok():
super().accept()