【问题标题】:AttributeError when using a pyqt4 event使用 pyqt4 事件时出现 AttributeError
【发布时间】:2014-06-22 14:24:11
【问题描述】:

我有一些这样的 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' 对象没有属性 'accept'

谁能帮我解决这个问题?

【问题讨论】:

  • 显然eventbool。没有看到更多,很难确切地说出为什么。您能否编辑您的问题以包含minimal example 以允许其他人重现该问题?

标签: python python-2.7 user-interface pyqt4


【解决方案1】:

您的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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2017-04-26
    • 1970-01-01
    • 2022-10-05
    • 2022-09-28
    相关资源
    最近更新 更多