如何将tkinter Entry值传递给Python中的函数?

时间:2019-07-31 15:02:50

标签: python tkinter

我想不使用按钮将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>

2 个答案:

答案 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()