将列表加载到单独的Entry小部件中

时间:2016-04-06 13:56:01

标签: python string list tkinter

我有一个列表,我希望列表中的每个字符串都显示在不同的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

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())