我无法访问我的课程的属性?

我正在使用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”给出的答案编辑代码之后:class Ui_MainWindow(object):def init (self,mainwindow):self.setupUi(mainwindow)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'

请谁能帮助我。

提前Thanx


该评论是说明你的问题。 您需要向调用self.setupUi() Ui_MainWindow类添加__init__()方法,以便在调用super()时立即调用setupUi()中的所有内容。

编辑:所以,现在你改变了你的代码,你得到__init__()接受两个参数错误,我环顾四周,看到你的内联代码,显示你需要传递一个MainWindow参数到你的Ui_MainWindow.__init__(self, MainWindow) 。 然后,将该MainWindow传递给您的setupUi方法。

编辑#2:更改

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)

至...

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.MainWindow=Ui_MainWindow(self.window) 。 另外,你将自己的一个实例作为参数传递给它自己。

链接地址: http://www.djcxy.com/p/65019.html

上一篇: I'm not able to access the attributes of my class?

下一篇: doesn't call super().