簡體   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