【发布时间】:2012-06-19 02:56:30
【问题描述】:
我正在使用 PyQt4 模块创建用户界面。我面临的问题是我无法访问“self.ftp_tableWidget”变量
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(790, 610)
self.FTP = QtGui.QWidget()
self.FTP.setObjectName(_fromUtf8("FTP"))
self.ftp_tableWidget = QtGui.QTableWidget(self.FTP)
self.ftp_tableWidget.setGeometry(QtCore.QRect(40, 90, 411, 192))
self.ftp_tableWidget.setMinimumSize(QtCore.QSize(331, 0))
self.ftp_tableWidget.setObjectName(_fromUtf8("ftp_tableWidget"))
self.ftp_tableWidget.setColumnCount(2)
self.ftp_tableWidget.setRowCount(31)
item = QtGui.QTableWidgetItem()
self.ftp_tableWidget.setHorizontalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.ftp_tableWidget.setHorizontalHeaderItem(1, item)
self.update_table()
这里是初始化 ftp_tableWidget 的地方。
def update_table(self):
cursor.execute('''SELECT MAX(SNO) FROM ftp_auth_table1''')
entry=cursor.fetchall()
entry=entry[0]
count=entry[0]
self.ftp_tableWidget.setRowCount(count)
cursor.execute('''SELECT * FROM ftp_auth_table1''')
entry=cursor.fetchall()
这是更新表格小部件的代码。
def adding(self):
self.msg=add_to()
self.msg.show()
这段代码正在调用一个向数据库添加数据的类。
class add_to(QtGui.QDialog,Ui_MainWindow):
def __init__(self):
super(add_to,self).__init__()
Ui_MainWindow.__init__(self)
这段代码初始化了将数据附加到数据库的类,并调用 update_table 函数来更新表格小部件。
这是我遇到的错误
self.ftp_tableWidget.setRowCount(count)
AttributeError: 'add_to' object has no attribute 'ftp_tableWidget'
规格: 我正在使用 python 2.7 和 PyQt4 模块。
根据“notbad jpeg”给出的答案编辑代码后: 类 Ui_MainWindow(对象): def init(self,mainwindow): self.setupUi(主窗口) def setupUi(self, MainWindow):
这给了我一个问题:
class add_to(QtGui.QDialog,Ui_MainWindow):
def __init__(self):
super(add_to,self).__init__()
self.window=QtGui.QMainWindow()
self.MainWindow=Ui_MainWindow(self.window)
Ui_MainWindow.__init__(self,self.MainWindow)
这给出了一个错误:
MainWindow.setObjectName(_fromUtf8("MainWindow"))
AttributeError: 'Ui_MainWindow' object has no attribute 'setObjectName'
请任何人帮助我。
提前感谢
【问题讨论】:
-
Ui_MainWindow.__init__()是否呼叫setupUi()? -
Blckknght:不,它没有,感谢您的注意。
-
我稍微修改了代码,现在我的 Ui_MainWindow 中有一个 init
-
@thecreator232,您能否更新问题中的代码以反映您的更改?
-
@Andy,我更新了代码