2014-06-22 49 views
1

我有一些PyQt4的這樣的腳本時:(編輯)AttributeError的使用PyQt4的事件

self.retranslateUi(Dialog) 
    self.close_pushButton.clicked.connect(self.closeApp) 

def retranslateUi(self, Dialog): 
    Dialog.setWindowTitle(_translate("Dialog", "Main App", None)) 
    self.close_pushButton.setText(_translate("Dialog", "Close", None)) 

def closeApp(self, event): 
    result = QtGui.QMessageBox.question(self, 'Exit Application', 
      "Are you sure you want to exit?", 
      QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) 
    if result == QtGui.QMessageBox.Yes: 
     event.accept() 
    else: 
     event.ignore() 

當我運行該腳本,總是有這樣表示錯誤消息:

AttributeError: 'bool' object has no attribute 'accept'

可以

人幫我解決這個問題?

+0

顯然'event'是一個'bool'。沒有看到更多,很難說明原因。您能否編輯您的問題以包含允許其他人重新創建問題的[最小示例](http://stackoverflow.com/help/mcve)? – jonrsharpe

回答

0

當然你的closeApp功能應該是這樣的:

def closeApp(self): # event not required 
    result = QtGui.QMessageBox.question(self, 'Exit Application', 
             "Are you sure you want to exit?", 
             QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) 
    if result == QtGui.QMessageBox.Yes: 
     self.close() 

瞭解有關close()信息見http://doc.qt.io/qt-4.8/qwidget.html#close

希望這會有所幫助。

+0

非常感謝你... – skipjackk013