我想不使用按钮将tkinter Entry框中的值传递给函数。我怎么这样呢?
我尝试仅绑定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>
答案 0 :(得分:2)
绑定函数时,将向函数传递表示事件的参数。该参数的属性之一是widget
,它代表接收事件的小部件。
最常见的解决方案是不将值传递到回调中。而是让回调使用此对象检索所需的信息:
def print_entry(event):
print(event.widget.get())
答案 1 :(得分:1)
我想出了一个解决方案:
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()