2014-10-31 2 views
0

클래스의 인스턴스 속성을 다른 클래스에서 가져와야합니다. 그것은 그것에 대해 생각하고 그것을 작동 해야하는 것처럼 보이지만 그것은하지 않습니다. 너 좀 도와 줄 수있어?다른 클래스의 인스턴스 속성을 사용합니다. Python

나는 swidget 얻을 필요가 있고 searchWidget 마녀 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 클래스에서, MainWindow를에 있습니다

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) 

필자는 마지막 줄 (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' 

임 wron 뭐 여기? 시간 내 줘서 고마워.

답변

0

당신은 class MainWidget에 대한 귀하의 생성자이 필요합니다 : 생성자로 전송

self.parent = parent 

변수는 클래스에서 다른 모든 곳에서 "범위를 벗어난"입니다.

+0

신의 축복이 당신, 환상 – user4175226

+0

@ user4175226 신의 축복! 이 질문에 답변 한 경우이를 수락 한 것으로 표시하는 것을 잊지 마십시오! – phantom

+0

축복의 당신과 stackoverflow.com! – user4175226

관련 문제