我正在嘗試使用Tkinter的Entry小部件。我無法讓它做一些非常基本的事情:返回輸入的值。
有沒有人有任何想法,爲什麼這樣一個簡單的腳本不會返回任何東西?我嘗試過很多種組合,並看到不同的想法。
這個腳本運行,但不打印錄入:Python Tkinter條目獲取()
from Tkinter import *
root = Tk()
E1 = Entry(root)
E1.pack()
entry = E1.get()
root.mainloop()
print "Entered text:", entry
看起來很簡單。
編輯: 萬一有其他人遇到這個問題,並不明白,這裏是什麼結束了爲我工作。我在輸入窗口中添加了一個按鈕。該按鈕的命令關閉窗口並執行get()函數:
from Tkinter import *
def close_window():
global entry
entry = E.get()
root.destroy()
root = Tk()
E = tk.Entry(root)
E.pack(anchor = CENTER)
B = Button(root, text = "OK", command = close_window)
B.pack(anchor = S)
root.mainloop()
並且返回所需的值。
'得到()'是輸入任何文字之前調用。所以'entry'是一個空字符串(在最後一行改變'entry'到'repr(entry)',你會看到)。如果你想在輸入一些文本時調用'get()'(你可能會這樣做),你需要將'get()'綁定到一個事件。 – gil
而'print'不會發生,因爲你之前有一個無限循環('root.mainloop()')。 – TigerhawkT3