如何让按钮单击事件连接到 closeEvent? PyQt4

How to have pushbutton click event to connect to closeEvent? PyQt4

我想有两种不同的退出应用程序的方法:

  1. 按左上角的默认 "X" 按钮。
  2. 按下自定义 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 处理程序。