Python TKinter:迭代时,条目未使用正确的textvariable
我有一个循环,它构造了多组条目,旁边有按钮,因此:Python TKinter:迭代时,条目未使用正确的textvariable,python,loops,tkinter,Python,Loops,Tkinter,我有一个循环,它构造了多组条目,旁边有按钮,因此: set 0: [Item0 Entry] [Item0 Edit Button] . . . set 1: [Item0 Entry] [Item0 Edit Button] etc 在每次迭代中,我创建一个变量 Item0Var = StringVar() 然后我通过say初始化了它 Item0Var.set("None") 我将变量存储在外部字典中 self.CurrentEquipSets[set_num].update(
set 0: [Item0 Entry] [Item0 Edit Button]
.
.
.
set 1: [Item0 Entry] [Item0 Edit Button]
etc
在每次迭代中,我创建一个变量
Item0Var = StringVar()
然后我通过say初始化了它
Item0Var.set("None")
我将变量存储在外部字典中
self.CurrentEquipSets[set_num].update(
{"Item0" : Item0Var,...} )
然后,变量将显示在禁用的条目中
Item0Entry = Entry(self.Item0Frame,textvariable=self.CurrentEquipSets[set_num]["Item0"],state=DISABLED,width=EntryWidth)
按钮是
Item0Edit = Button(self.Item0Frame,text="Edit",command = lambda EquipSet=set_num,Item="Item0": self.EditItem(EquipSet,Item))
textvariable外部存储在dictionary self.currentEquipSet中
按钮在呼叫
def EditItem(self,EquipSet,Item):
self.CurrentEquipSets[EquipSet][Item].set("Something")
如果我有3个集合,按下集合0的“编辑”按钮,我要查找的结果是:
set 0: Item0Entry ["Something"]
set 1: Item0Entry ["None"]
set 3: Item0Entry ["None"]
但是我得到了
set 0: Item0Entry ["None"]
set 1: Item0Entry ["None"]
set 3: Item0Entry ["Something"]
我遗漏了什么?原来[{}]*listlength不适用于初始化字典列表,问题解决了 请创建一个适当的。让我们找出如何缝合所有这些小代码块并不是让人们回答问题的好方法。对不起,这是相当多的代码,但我想我可以更接近完整代码!