循环以更新PyQT GUI中的标签

时间:2016-03-23 01:38:55

标签: python-2.7 pyqt

我有一个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')

1 个答案:

答案 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')