是否可以在不为多行编写.addWidget()的情况下将多个小部件添加到QWidget? [关闭]

问题描述 投票:0回答:1
当前,我试图找出是否有一种创建列表的方法,然后将列表中的每个小部件添加到QWidget布局中。

这是我虽然可以使用的方式,但是目前仅显示列表中的最后一个小部件:

def HomeWidget(self): widget = QtWidgets.QWidget(self) layout = QVBoxLayout(widget) #title of page title = QtWidgets.QLabel('Welcome to the Home Page') title.setObjectName('titleOfPage') labelTest = QtWidgets.QLabel('TEST') labelTest.setObjectName('genText') widgetList = [title, labelTest] #all widgets go here for widget in widgetList: layout.addWidget(widget) return widget

python python-3.x pyqt pyqt5
1个回答
0
投票
您的变量

widget与函数体内的另一个变量widget冲突。在循环中重命名widget var,一切正常:

def HomeWidget(self): widget = QtWidgets.QWidget(self) layout = QVBoxLayout(widget) #title of page title = QtWidgets.QLabel('Welcome to the Home Page') title.setObjectName('titleOfPage') labelTest = QtWidgets.QLabel('TEST') labelTest.setObjectName('genText') widgetList = [title, labelTest] #all widgets go here for w in widgetList: layout.addWidget(w) return widget
© www.soinside.com 2019 - 2024. All rights reserved.