我想将我的各种复选框存储在字典中,以便稍后可以调用它们。因为我想根据小部件的数量执行操作,所以我需要一些将它们全部存储在数组中的方法。将每个小部件存储在如下独特条目中:存储小部件在字典中
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'])
命令不起作用。 我已经试过类似如下:
self.il['Line2'[i]] = QtWidgets.QCheckBox(self.il2info[i],self)
,但得到的错误:
IndexError: string index out of range
我也试图做的事:
self.il['Line2':[i]] = QtWidgets.QCheckBox(self.il2info[i],self)
但我遇到了以下错误:
TypeError: unhashable type: 'slice'
是否有一些我缺少的语法错误?小部件对象是否不能存储在字典中?有没有一种方法可以让我使用ID来存储ID字典中的ID?
编辑:我原来的问题已经解决,因为我错误地定义了我的字典的键/值。使用临时字典将所有小部件收集到一个数组中,然后使用'Line2'键将它们等同于我的主字典,从而解决了问题。
你存储切片对象,而不是无论你想要的关键。你能更新你的例子吗? –
恐怕我不明白你的评论。我希望将“对象”存储为我的'Line2'键的值。我不希望对象被切片。 – JN3
@ JN3查看我的回答 – eyllanesc