2015-02-09 51 views
0

我想有两种不同的方法戒烟的应用程序:如何让pushbutton click事件连接到closeEvent? PyQt4的

  1. 通过按下左上角默认的“X”按钮。
  2. 按自定义QPushButton(“退出”)

这里按下“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)) 

,但它也不起作用。

回答

2

只要连接到窗口的close插槽:

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

调用close()职位密切事件,这将随后被传递到窗口的closeEvent处理。

+0

谢谢!这只是我想要的。 – Krin123 2015-02-10 22:37:56