[英]How to pass tkinter Entry values to a function in Python?
我想在不使用按鈕的情況下將 tkinter 輸入框中的值傳遞給函數。 我怎么能這樣?
我試過只綁定 Entry 字段,但傳遞的不是條目而是 KeyPress 事件
import tkinter
def print_entry(entry):
print(entry)
root = tkinter.Tk()
entry_field = tkinter.Entry(root)
entry_field.pack()
entry_field.bind("<Return>", print_entry)
entry_field.focus()
root.mainloop()
我希望得到在輸入框中輸入的值,但得到:
<KeyPress event state=Mod1 keysym=Return keycode=13 char='\r' x=966 y=186>
我想出了一個解決方案:
import tkinter
def print_entry(entry):
print(entry)
root = tkinter.Tk()
entry_field = tkinter.Entry(root)
entry_field.pack()
entry_field.bind("<Return>", lambda x: print_entry(entry_field.get()))
entry_field.focus()
root.mainloop()
當您綁定一個函數時,該函數將被傳遞一個表示事件的參數。 該參數的屬性之一是widget
,它表示接收事件的小部件。
最常見的解決方案是不將值傳遞給回調。 相反,讓回調使用此對象檢索它們需要的信息:
def print_entry(event):
print(event.widget.get())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.