我有一个pyqt gui,其中包括在init上填充数据的标签。标签本身很容易更新:
self.ui.mylabel_1.setText('foobar')
self.ui.mylabel_2.setText('foobar')
有没有办法以类似的方式循环执行此操作,如下面的伪:
for num in range (1,24):
self.ui.mylabel_num.setTest('foobar')
答案 0 :(得分:1)
执行此操作的简洁方法是在某处存储所有标签的列表,即self.all_labels = [self.ui.mylabel_1, self.ui.mylabel_2]
,然后执行for label in self.all_labels: label.setTest('foobar')
。
您还可以使用getattr
让您的示例正常工作:
for num in range (1,24):
label = getattr(self.ui, 'mylabel_{}'.format(num))
label.setTest('foobar')