我想把我的各种复选框存储在字典中,以便以后可以调用它们。因为我想根据带有len(self.il['Line2'])
的小部件的数量执行操作,所以我需要某种方法将它们全部存储在一个数组中。将每个小部件存储在一个唯一的条目中,例如:
for i in range(7): #INPUT LINE 2
self.il['Line2',i] = QtWidgets.QCheckBox(self.il2info[i],self)
print(self.il['Line2',i])
--------output----------
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A4398EE58>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A4398EF78>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A439690D8>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A43969168>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A439691F8>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A43969288>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A43969318>
但是我的len(self.il['Line2'])
命令就不起作用了。
我尝试了如下方法:
但得到的错误是:
IndexError: string index out of range
我也尝试过:
self.il['Line2':[i]] = QtWidgets.QCheckBox(self.il2info[i],self)
但我遇到了以下错误:
TypeError: unhashable type: 'slice'
有没有我遗漏的语法错误?小部件对象不能存储在字典中吗?有没有一种方法可以让我在字典中存储ID的widget?在
编辑:我原来的问题已经解决了,因为我错误地定义了字典的键/值。使用临时字典将所有小部件收集到一个数组中,然后用键'Line2'将它们等效到我的主字典,解决了这个问题。在
当您按如下方式添加元素时:
类似于:
^{pr2}$也就是说,键是一个元组,所以必须将元组作为键传递,以便它返回值。在
在您的情况下:
例如,当您指出:
相当于:
或者更糟的是,如果你传递的索引大于字母数。在
注意:将元组作为键的内容不会生成数组,如果要获得数组的结构,则必须使用字典创建字典。在
然后,当您想访问时,请使用:
示例:
相关问题 更多 >
编程相关推荐