我正在创建一个GUI,我想访问我的一些小部件。由于他们很多,我想打电话给所有人并放入字典。我已经在字典dicA
上了,我想使用相同的密钥,但有一些限制:
for row_nr in range(0,8):
for cln_nr in range(0,8):
self.current_Frame = self.gridLayout_10.itemAtPosition(row_nr, cln_nr)
self.dicA[row_nr+1, cln_nr+1] = self.current_Frame
for keys in sorted(self.dicA.keys()):
if keys[0] == 1 or keys[0] == 8 or keys[1] == 1 or keys[1] == 8:
for info_nr in range(1, 29):
self.info_names = 'info_'+str(info_nr)
self.current_entry = self.Matrix.findChild(QtGui.QTextEdit, self.info_names)
self.dicB[keys] = self.current_entry
最后我想要的是一个字典,其中包含与dicA
相同的键作为键,但遵循这些限制,并与self.current_entry
找到的每个小部件相关联。
但是当我运行这段代码时,我会按照自己的意愿获取密钥,但是它会将最后一个小部件info_28
与所有密钥相关联。
第一本字典就像我想要的那样,但是第二本字典,我错过了什么?
答案 0 :(得分:0)
将字符分配给字典后检查字典中是否存在密钥而不是跳过,否则将该密钥添加到字典
答案 1 :(得分:0)
我最终以更好的方式解决了这个问题。第一个dicA
具有网格上的位置作为键。所以我做了以下
for info_nr in range(1, 29):
self.info_names = 'info_'+str(info_nr)
self.current_entry = self.Matrix.findChild(QtGui.QTextEdit, self.info_names)
idx = self.gridLayout_10.indexOf(self.current_entry)
loc = self.gridLayout_10.getItemPosition(idx)
self.dicB[loc[0], loc[1]] = self.current_entry