python 的PyQT5画了30个显示文字的label标签,请问 控件名 用变量替代好像不管用?不然我这要写30条代码,太费劲儿了,麻烦亲们帮忙解答一下,感恩的心!
你如果已经画好30个label了,不想做动态的话,可以把30个label装入列表,再循环:
list = [slef.ui.label1, slef.ui.label2, slef.ui.label3, slef.ui.label4, slef.ui.label5, slef.ui.label6, slef.ui.label7, slef.ui.label8, slef.ui.label9, slef.ui.label10, slef.ui.label11, slef.ui.label12, slef.ui.label13, slef.ui.label14, slef.ui.label15, slef.ui.label16, slef.ui.label17, slef.ui.label18, slef.ui.label19, slef.ui.label20, slef.ui.label21, slef.ui.label22, slef.ui.label23, slef.ui.label24, slef.ui.label25, slef.ui.label26, slef.ui.label27, slef.ui.label28, slef.ui.label29, slef.ui.label30 ]
for i in range(len(list)):
list[i].setText(tx[i])
遇到此类问题无非几个思路
1.动态添加控件,但如此一来在设计阶段无法看到效果,要运行时控件才出现,不是所见即所得的,影响布局设计
2.把控件放入一个list,但如果控件非常多的话(比如有几百个)同样很麻烦
3.如果控件名称有一定规律,可以使用“反射”的方式,通过变量名字符串找到变量,再进行操作,具体有点复杂,请拿好关键字“反射”