如何让按钮单击事件连接到 closeEvent? PyQt4
How to have pushbutton click event to connect to closeEvent? PyQt4
我想有两种不同的退出应用程序的方法:
- 按左上角的默认 "X" 按钮。
- 按下自定义 QPushButton("Quit")
按下 "X" 的事件连接到一个 closeEvent 函数:
def closeEvent(self, event):
message = QtGui.QMessageBox.question(self, "quit", "Do you really want to quit?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
if message == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
有没有办法连接按钮的单击事件以执行完全相同的功能以退出?我试过:
self.quit.clicked.connect(self.closeEvent(QtCore.QCoreApplication.quit))
但是当我 运行 GUI 时,首先弹出的是消息框。
我做错了什么,我该如何解决?
编辑 1:
我也试过了
self.quit.clicked.connect(self.closeEvent(QtCore.QCoreApplication.instance().quit))
但是也没用。
只需连接到 window 的 close
插槽:
self.quit.clicked.connect(self.close)
调用 close()
发布一个关闭事件,该事件随后将被传送到 window 的 closeEvent
处理程序。
我想有两种不同的退出应用程序的方法:
- 按左上角的默认 "X" 按钮。
- 按下自定义 QPushButton("Quit")
按下 "X" 的事件连接到一个 closeEvent 函数:
def closeEvent(self, event):
message = QtGui.QMessageBox.question(self, "quit", "Do you really want to quit?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
if message == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
有没有办法连接按钮的单击事件以执行完全相同的功能以退出?我试过:
self.quit.clicked.connect(self.closeEvent(QtCore.QCoreApplication.quit))
但是当我 运行 GUI 时,首先弹出的是消息框。
我做错了什么,我该如何解决?
编辑 1:
我也试过了
self.quit.clicked.connect(self.closeEvent(QtCore.QCoreApplication.instance().quit))
但是也没用。
只需连接到 window 的 close
插槽:
self.quit.clicked.connect(self.close)
调用 close()
发布一个关闭事件,该事件随后将被传送到 window 的 closeEvent
处理程序。