在运行时使用动态名称创建Qlabels

时间:2016-06-04 01:23:52

标签: python qlabel

#in this example len(list) is 5

i=0
while i < len(list):
    label=q_label_i                 #creating a name for the label
    self.label=QLabel()             #
    grid.addWidget(self.label,i ,0)     # grid is a grid = QGridLayout()
    i=i+1

上面的代码创建了5个标签但是它们都被称为q_label_i而不是q_label_0 q_label_1 .... q_label_4

在另一个函数中 - 我将从文件中读取数据并更新这些标签,并将它们称为q_label_0 q_label_1 .... q_label_4

任何有关如何使其发挥作用的提示都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您必须处理两个名称。 qlabel绑定的变量名称和objectName使用的Qt

在处理可变数量的项目时,通常最好将它们存储在字典或列表中

self.labels = dict()
for i in range(5):
    name = 'q_label_{}'.format(i)
    label = QLabel()
    label.setObjectName(name)
    grid.addWidget(label, i, 0)
    self.labels[name] = label

稍后,当您想要引用标签时,只需执行

self.labels['q_label_2']