首先,你不需要StringVar
對象設置或得到的Entry
對象的內容。 StringVar
s主要用於與不同的小部件共享相同的值,我認爲情況並非如此。
您可以做的是獲取或在Entry小部件中插入值。您可以通過指定指數(和串)的條目插入一個字符串:
import tkinter as tk
m = tk.Tk()
e = tk.Entry(m)
e.pack()
e.insert(0, "Goodbye!") # index=0, string="Goodbye"
m.mainloop()
爲了得到一個項的內容,這是更簡單(以同樣的例子):
import tkinter as tk
m = tk.Tk()
e = tk.Entry(m)
e.pack()
e.insert(0, "Goodbye!")
b = tk.Button(m, text="Get Entry's content",
command=lambda: print(e.get())) # on click, the contents will be printed
b.pack()
m.mainloop()
在你的情況,而不是具有lambda
,您可以簡單地正常功能在下列方式一鍵命令關聯:
b = Button(command=get_entries_content) # note the absence of()
然後你可以定義你的get_entries_content
函數,它會得到你單個條目的內容,然後用它們來填充一個列表。
def get_entries_content():
# get contents of Entries
# fill my list
因此,每個條目的內容將是一個列表中的值?像'contents = [entry1_value,entry2_value,entry3_value]'? – nbro 2015-02-05 14:54:18