2016-08-02 2 views
0

Я пытаюсь добавить простую строку к списку объектов и объектов. Но я предполагаю, что ключевое слово self вмешивается в окно pyqt?AttributeError: объект «Window» не имеет атрибута «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 

кв класс

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

Просто для уточнения, является CreateWidgets функции члена класса Window? Если это так, он должен быть отступом на одну ступень в классе Window. –

+0

@FilipHedman Да, это так. Я исправил это сейчас. Спасибо – vandelay

ответ

4

Вы пытаетесь принести член д до инициализации. Вызовите Qfetch.DataFetch() перед self.CreateWidgets().

Этот код должен работать конструктор:

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

Как неловко. Спасибо! – vandelay

Смежные вопросы