python-3.x - 如何在 PyQt5 中动态创建标签
问题描述
我正在创建一个使用 PyQt5 实现D'hontds方法的基本 GUI 应用程序,并且在动态创建时遇到问题,Qlbales
即我想在这些标签中显示结果,并且标签的数量基于用户输入的数量,因此它会有所不同. 我可以创建最大数量,然后只使用我需要的数量,但我确信有更整洁和更有效的解决方案。
我尝试过exec
and eval
(我知道这是一种糟糕的方法),但是我没有成功。我认为eval
无法以某种方式从列表中读取元素,不确定。这是我尝试过的(i+5
因为我还有 4 个标签):
def set_result_labels(self):
font = QtGui.QFont()
font.setPointSize(15)
for i in range(len(self.text_parties_names)):
exec(f"self.label_{i+5} = QtWidgets.QLabel(self.centralwidget)")
eval(f"self.label_{i+5}.setGeometry(QtCore.QRect(640, {(i+5)*40}, 50, 50))")
eval(f"self.label_{i+5}.setFont(font)")
eval(f"self.label_{i+5}.setText(self.text_parties_names[i])")
并且self.text_partirs_names
是来自textEdits
(用户输入)的名称列表:
def get_parties_names(self):
for text_edit in self.text_edit_parties_list:
if text_edit.toPlainText():
self.text_parties_names.append(text_edit.toPlainText())
解决方案
推荐阅读
- php - 作曲家安装失败,找不到类
- c# - Dotnet Pack vs Nuget.exe Pack,版本降级错误
- python - 将函数作为参数传递给 matplotlib 的其他函数无法正常工作?
- excel - VBA根据每个工作表中的A列过滤器复制多个工作表并创建新工作簿
- c# - 打印时更改 pdf 中的整个文本字体颜色
- kotlin - Kotlin - Set 有重复的元素,但没有错误出现
- nginx - nginx 代理从 url 传递 ip
- email - 从未使用 MailActionExecuter(Java 工作流 webscript 和 ActionService)添加 Alfresco CC 的电子邮件收件人
- javascript - 循环遍历转换为数组的对象及其属性名称。怎么做?
- javascript - “字体显示:可选”在 Next.js 和 Emotion 项目中的 Chrome 中不起作用