AttributeError:'窗口'对象没有属性'q'

问题描述:

我想追加一个简单的字符串到列表和对象中。但我猜测self关键字与pyqt窗口有干扰?AttributeError:'窗口'对象没有属性'q'

我该如何解决这个问题?

class Window(qt.QMainWindow): 
    def __init__(self, parent=None): 
     super(Window, self).__init__(parent) 
     self.CreateWidgets()  
     self.q = Qfetch.DataFetch() 

    def CreateWidgets(self): 
     toPortfolio = "str" 
     self.q.Portfolio.append(toPortfolio) #<---- This cause the error 

Q类

class DataFetch(): 
    def __init__(self): 
     self.Portfolio = [] 
+0

只是为了澄清,是CreateWidgets窗口类的函数成员?如果是这样,它应该在Window类中缩进一个凹口。 –

+0

@FilipHedman是的。我现在修好了。谢谢 – vandelay

您试图在初始化之前获取的成员q。在self.CreateWidgets()之前调用Qfetch.DataFetch()。

这为构造函数代码应工作:

class Window(qt.QMainWindow): 
    def __init__(self, parent=None): 
     super(Window, self).__init__(parent) 
     self.q = Qfetch.DataFetch() 
     self.CreateWidgets()  
+0

多么尴尬。谢谢! – vandelay