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

时间:2015-02-09 23:47:02

标签: python pyqt4

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

  1. 按默认" X"左上角的按钮。
  2. 按自定义QPushButton("退出")
  3. " 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))
    

    但它也不起作用。

1 个答案:

答案 0 :(得分:2)

只需连接到窗口的close广告位:

    self.quit.clicked.connect(self.close)

调用close()发布一个close事件,该事件随后会传递给窗口的closeEvent处理程序。