创建条目列表

时间:2013-03-23 16:14:43

标签: python user-interface button tkinter

我有一个带有x个条目的GUI。我希望输出像所有条目的列表。我有以下代码:

from Tkinter import *
master = Tk()
lijst=[]
x=0
while x<3:
    a="e"+str(x)
    lijst.append(a)
    x=x+1
x=0

labels=[]
x=1
while x<4:
    a="File"+str(x)+":"
    labels.append(a)
    x=x+1

x=0
while x<3:
    a=labels[x]
    b=Label(master,text=a)
    b.grid(row=x+1, column=0)

    x=x+1

x=0
while x<3:
    a=lijst[x]
    b=Entry(master)
    b.grid(row=x+1, column=1)
    c=Label(master, text=".txt            ")
    c.grid(row=x+1, column=1,sticky=E)
    x=x+1

Button(master, text='Enter', command=???,width=20).grid(row=4, column=2, sticky=W, pady=4,padx=20)

mainloop()   

output: list=[e0.get(),e1.get(),etc...

如何创建一个看起来像输出的列表,而不依赖于条目数?

1 个答案:

答案 0 :(得分:1)

您可以使用理解列表更轻松地创建条目列表:

entries = [Entry(master) for i in range(3)]

for i, entry in enumerate(entries):
    label_text = "File%s:" % (i+1)
    Label(master, text=label_text).grid(row=i, column=0)
    entry.grid(row=i, column=1)
    Label(master, text=".txt").grid(row=i, column=2, padx=(0, 15))

创建thit列表后,打印每个条目的get()调用是微不足道的:

def print_entries():
    print [entry.get() for entry in entries]

Button(master, text='Enter', width=20, command=print_entries).grid(row=4, column=3, sticky=W, pady=4,padx=20)

我已使用右边填充as explained here替换".txt"字符串的尾随空格,这更清晰。