我有一个列表,我希望列表中的每个字符串都显示在不同的Entry小部件中。我首先得到它可能变化的长度,然后使用for I in range(l)
命令为列表中的每个字符串创建下一个部分循环。 a=0
在加载时加载每个不同的字符串。我认为问题是textvariable=self.example_var
命令导致所有加载的小部件显示为空,除了最后一个
中包含正确的字符串。
基本上,所有正确数量的条目窗口小部件都会加载,但除了最后一个之外,字符串不在其中。
l=len(selectedetails)
a=0
for i in range(l):
self.example_var = StringVar()
self.example_var.set(selectedetails[a])
self.example_txt = Entry(top1,textvariable=self.example_var)
print(selectedetails[a])
self.example_txt.pack()
a=a+1
答案 0 :(得分:1)
我建议使用StringVar
。它对于您如何使用条目小部件没有任何实际意义,它增加了一个需要跟踪的额外对象。
我还建议不计算长度并迭代索引。更pythonic的方法是直接迭代列表中的项目:
entries = []
for item in selectiondetails:
entry = Entry(top1)
entry.insert(0, item)
entry.pack()
entries.append(entry)
稍后,当您需要获取值时,可以迭代entries
:
for entry in entries:
print(entry.get())