2013-03-23 50 views
0

我有一个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

您可以创建更容易使用理解列表中的条目列表:

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"字符串的尾部空格,这更清楚。

+0

好的谢谢你提炼和改进我的功能,但我需要输出列表。所以我想把这个列表分配给一个变量。所以我可以使用该列表进一步定义。我怎样才能做到这一点? – Glenn 2013-03-23 17:18:14

+0

@Glenn如果你想这样做,就像'a = [entry.get()...]'一样简单。请记住,如果'a'是一个全局变量,则在使用它之前应该声明'全局a'。 – 2013-03-23 17:21:54

+0

非常感谢你,这就是我需要的! – Glenn 2013-03-23 17:24:39