我想將我的各種複選框存儲在字典中,以便稍後可以調用它們。因爲我想根據小部件的數量執行操作,所以我需要一些將它們全部存儲在數組中的方法。將每個小部件存儲在如下獨特條目中:存儲小部件在字典中
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