繁体   English   中英

python-从另一个类调用类变量

[英]python - call class variable from another class

我正在研究类并尝试在我的PySide GUI中使用setCentralWidget()。 我有一个MainWindow,以及两个小部件:mainWidget和searchWidget,在单击searchButton之后要显示的一个。

class MainWindow(QMainWindow):

    def __init__(self):

        super(MainWindow,self).__init__()        
        self.initUI()

    def initUI(self):

        mainWidget = MainWidget()

        self.resize(300,500)
        self.statusBar()
        self.statusBar().showMessage('Elo Elo')
        self.setCentralWidget(mainWidget)   # <---- setting centralWidget first time
        self.setWindowTitle('StartApp Welcome')

和searchWidget()

class SearchWidget(QWidget):

    def __init__(self, parent=MainWindow):

        super(SearchWidget,self).__init__()
        self.initUI()

    def initUI(self):       

        backButton = QPushButton('GoBack', self)
        backButton.clicked.connect(self.goBack)

    def goBack(self):

        self.parent().setCentralWidget(self.parent().mainWidget)  # <--- error line

错误

AttributeError: 'MainWindow' object has no attribute 'mainWidget'

我不知道如何到达MainWidget()实例“ mainWidget”。 你能以某种方式帮助我吗? 谢谢

这是因为在此行中:

self.parent().setCentralWidget(self.parent().mainWidget)

您尝试访问变量mainWidget就像它是MainWindow属性一样 -并不是(目前它只是局部变量)。 这是因为您没有将其初始化为self.mainWidget ,必须执行该操作才能使其按self.mainWidget

self.mainwidget = MainWidget()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM