2013-03-23 70 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