2016-08-02 19 views
0

Ich versuche, eine einfache Zeichenfolge an eine Liste in und ein Objekt anzuhängen. Aber ich nehme an, das self-Schlüsselwort interferiert mit dem pyqt-Fenster?AttributeError: 'Window' Objekt hat kein Attribut 'q'

Wie kann ich das umgehen?

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 Klasse

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

Nur zur Klarstellung, CreateWidgets ist eine Funktion Mitglied der Window-Klasse? Wenn dies der Fall ist, sollte es innerhalb der Window-Klasse um eine Kerbe eingerückt werden. –

+0

@FilipHedman Ja ist es. Ich habe es jetzt behoben. Danke – vandelay

Antwort

4

Sie versuchen das Mitglied q zu holen, bevor es initialisiert wird. Rufen Sie Qfetch.DataFetch() vor self.CreateWidgets() auf.

sollten Dieser Code für den Konstruktor arbeiten:

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

Wie peinlich. Vielen Dank! – vandelay

Verwandte Themen