2014-10-31 13 views
0

Мне нужно получить атрибут экземпляра класса из другого. Я думаю об этом, и похоже, что он должен работать, но это не так. Можете ли вы мне помочь?с использованием атрибута экземпляра из другого класса. Python

Мне нужно, чтобы добраться до SWIdget и searchWidget ведьма в MainWindow, от MainWidget

class MainWindow(QMainWindow): 

    def __init__(self): 

     super(MainWindow, self).__init__() 

     self.mainWidget = MainWidget(self) 
     self.searchWidget = SearchWidget(self) 
     self.swidget = QStackedWidget() 
     self.swidget.addWidget(self.mainWidget) 
     self.swidget.addWidget(self.searchWidget)  
     self.setCentralWidget(self.swidget)   
     self.initUI() 

     ... 

и класс MainWidget:

class MainWidget(QWidget): 

    def __init__(self, parent): 

     super(MainWidget,self).__init__(parent) 
     self.initUI() 

    def initUI(self): 

     ... 

    def goSearch(self): 
     self.parent.swidget.setCurrentWidget(self.parent.searchWidget) 

Ive получил проблему в последней строке (DEF doSearch ()) переводчик говорит:

File "/home/maze/Develop/StartApp/startapp.py", line 71, in goSearch 
    self.parent.swidget.setCurrentWidget(self.parent.searchWidget) 
AttributeError: 'builtin_function_or_method' object has no attribute 'swidget' 

Что Im делает wron g здесь? Спасибо за ваше время.

ответ

0

Вы должны были бы это в конструкторе для class MainWidget:

self.parent = parent 

переменная отправляется в конструкторе «выходит за рамки» везде в вашем классе.

+0

Благословит вас Бог, фантом – user4175226

+0

@ user4175226 Благословит Бог! Если это ответит на ваш вопрос, не забудьте отметить его как принято! – phantom

+0

Благослови вас и stackoverflow.com! – user4175226

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