我正在研究类并尝试在我的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()实例&#39; mainWidget&#39;。你能以某种方式帮助我吗?感谢
答案 0 :(得分:0)
这是因为在这一行:
self.parent().setCentralWidget(self.parent().mainWidget)
您尝试访问变量mainWidget
,就好像它是MainWindow
的属性 - 它不是(目前它只是一个局部变量)。这是因为您没有将其初始化为self.mainWidget
,您必须这样做才能让它像您希望的那样工作。
self.mainwidget = MainWidget()