使用另一个类的实例属性。 Python

问题描述:

我需要从另一个到一个类的实例属性。我正在考虑它,它看起来应该起作用,但事实并非如此。你能给我一些帮助吗?使用另一个类的实例属性。 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类:

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' 

我在做什么wron g在这里?谢谢你的时间。

您需要这在构造函数用于class MainWidget

self.parent = parent 

发送到构造函数的变量是“超出范围”其他地方在你的类。

+0

上帝保佑你,幻影 – user4175226 2014-10-31 19:21:16

+0

@ user4175226上帝保佑!如果这回答了您的问题,请不要忘记将其标记为已接受! – phantom 2014-10-31 19:21:56

+0

祝福你和*.com! – user4175226 2014-10-31 19:29:49