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

时间:2014-10-31 19:13:15

标签: python class parent

我需要从另一个类获取类的实例属性。我正在考虑它,它看起来应该工作,但事实并非如此。你能给我一些帮助吗?

我需要在MainWindow中使用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)

我在最后一行遇到了问题(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'

我在这里做错了什么?谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

class MainWidget

的构造函数中需要这个
self.parent = parent

发送给构造函数的变量在您的类中的其他任何位置都“超出范围”。