2015-02-09 21 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