python - 有没有办法在不为多行编写 .addWidget() 的情况下向 QWidget 添加多个小部件?
问题描述
目前,我正在尝试找出是否有办法创建一个列表,然后将列表中的每个小部件添加到 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
解决方案
循环中的变量小部件与函数体中的另一个变量小部件冲突。
在循环中重命名小部件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
推荐阅读
- javascript - 时刻时区将UTC更改为默认时区
- java - 使用 Prim 算法 Java 查找 MST
- java - 如何使用 IntelliJ IDE 将媒体资源正确添加到 (Java) Gradle 工件中?
- html - CSS 文件没有被拾取
- azure-devops - Azure Pipelines 小部件/报告以查看跨项目的管道状态
- firebase - Firestore 规则覆盖率报告 - 从未评估过请求表达式(Firestore 模拟器)
- swift - 如何在 SwiftUI 中从 FetchedResults (CoreData) 中获取 NSOrderedSet
- vb.net - 我如何在 8 位 VB.NET 中制作秒表
- angular - 如何根据来自两个不同数组的值匹配检查复选框?
- ruby-on-rails - 调整范围规则作为acts_as_tenant 的一部分?