当一个UI窗口界面内有多个相同类型的控件,且这多个控件的功能都类似时,使用数组控件是一个非常不错的选择,可以大大减少代码的编写 且 代码易读性强,可惜的是Python好象是没有数组控件这个东东。
我们来看看以下一个界面,为了获取 64个单选框的状态,使用数组控件无疑是一个最好的方法。
本示例中用到的设备:液显ISO15693 ICODE2 MB89R112 网络读卡器读写器可二次开发编程-淘宝网 (taobao.com)
我们来看看VB6的数组控件的使用,使用个循环语句,短短几行代码就可以获取到64个单选框的状态。
For i = 0 To 63
If Check1(i).Value > 0 Then
seleblock = "1" + seleblock
blockflaglen = i + 1
Else
seleblock = "0" + seleblock
End If
Next
这么好的数组控件,Python具然没有这个东东,难到要一个个控件来判断它的状态?这显然是不可取的。没有数组控件,如果有获取到 任意指定控件 的状态的方法也能达到类似功能呀,使用 findChild 函数好象能达到这个功能,于是,使用了以下的代码,测试成功!看起来和数组控件差不多了。
for i in range(64):
self.chckbox = self.findChild(QCheckBox, "checkBox%d" % (i))
if self.chckbox.isChecked():
seleblock = '1' + seleblock
else:
seleblock = '0' + seleblock