我正在使用Python(PyQt5的最新版本)在我的屏幕上,我有30个标签,它们的名称是label_01到label_30。我想根据一些逻辑更改几个标签的文本。
我要更改的标签保存在字符串列表(标签名称)中例如,假设我的逻辑选择了以下标签:label_13,label_16,label_28
问题由于标签列表是动态的,如何基于该列表循环更改标签?
我可以这样做:self.label_1.setText('命令已发送..')但是如何将标签名称作为参数而不是“ label_1”
谢谢Eyal
尝试接收3个参数的setattr
:必须设置其属性的对象(如果在类定义中使用,可以为self
),属性名称作为字符串和新值。
尝试:
# let `labels_to_change` be your dynamic list of labels you want to change and set them to be equal to new_value
labels_to_change = ['label_1','label_3']
new_value = "new_value"
for label in labels_to_change:
setattr(getattr(self, label), "text", new_value)