2015-11-29 47 views
0

我在我的Tkinter GUI中使用for-loop創建了20個條目(未來可能會有更多這樣的條目,我真的不希望只有50行代碼用於定義條目)。我需要收集條目值以創建一個numpy數組。如在黑暗中拍攝我已經試過這樣:Tkinter - 獲取一系列條目值

master = Tk() 

R=StringVar() 

namR = [] 
for ii in range(0,20): 
    namR.append(Entry(master), textvariable=R[ii]) 
    namR[ii].grid(row=2+ii, column=3) 

這顯然是行不通的(StringVar instance has no attribute '__getitem__'),但我認爲我們的目標是明確的。

任何建議,使這項工作,請?

+0

你需要'StringVar'列表。 'R'不是一個列表,所以你不能使用'[ii]' – furas

回答

4

您應該在Entry()呼叫中包含您的textvariable,而不是在它之後(append(Entry(master, textvariable=xyz))而不是append(Entry(master), textvariable=xyz))。 append()將不知道如何處理第二個參數。接下來,您可以爲StringVar對象創建list對象,並使用Entry(master, stringvariable=svars[ii])之類的內容引用它們。但是,這隻有在你想做變量追蹤等時纔是必需的。如果您只想檢索輸入對象中的文本,則可以使用my_entry.get()來完成。然後

master = Tk() 

namR = [] 
for ii in range(0,20): 
    namR.append(Entry(master)) 
    namR[ii].grid(row=2+ii, column=3) 

[e.get() for e in namR]將是所有入口內容的list