我正在使用python。当我尝试运行我的DlgDbError.py文件时,它给出了错误说:
File "C:\rt_sql_layer\ui\DlgDbError_ui.py", line 47, in setupUi
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), DlgDbError.accept)
AttributeError: 'DlgDbError' object has no attribute 'accept'
但是buttonbox有接受方法......可能是什么问题??
答案 0 :(得分:2)
该错误不在DlgDbError.py
文件中,而是在您使用DlgDbError_ui.py
创建的pyuic4
模块中。
此模块将包含Ui_DlgDbError
类,其中包含setupUi
方法。此方法有一个参数(名为DlgDbError
),它接受您在Qt Designer中创建的主窗体类的实例(即也称为DlgDbError
的实例)。
setupUi
方法期望DlgDbError
对象具有accept()
个插槽,这可能意味着它应该是QDialog
的子类。
显然,您没有将QDialog
的子类传递给setupUi
,因此您获得了AttributeError
。
你可能需要这样做:
from DlgDbError_ui import Ui_DlgDbError
class MyDlgDbError(Ui_DlgDbError):
def __init__(self, parent=None)
self.dialog = QtGui.QDialog(parent)
self.setupUi(self.dialog)
...
答案 1 :(得分:1)
也许它应该是self.buttonBox.accept
而不是DlgDbError.accept
呢?
答案 2 :(得分:1)
该行应该是:
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), DlgDbError.accept)
即。 QtCore.SIGNAL(“accepted()”)实际上应该是QtCore.SIGNAL(_fromUtf8(“accepted()”))
其中:
_fromUtf8 = QtCore.QString.fromUtf8