AttributeError: 'Window' 对象没有属性 'q'

van*_*lay 0 python pyqt

我正在尝试将一个简单的字符串附加到 and 对象中的列表中。但我猜 self 关键字会干扰 pyqt 窗口?

我该如何解决这个问题?

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
Run Code Online (Sandbox Code Playgroud)

q班

class DataFetch():
    def __init__(self):
        self.Portfolio = []
Run Code Online (Sandbox Code Playgroud)

Fil*_*man 5

您正在尝试在初始化之前获取成员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()       
Run Code Online (Sandbox Code Playgroud)