【问题标题】:How to pass tkinter Entry values to a function in Python?如何将 tkinter 条目值传递给 Python 中的函数?
【发布时间】:2019-07-31 15:02:50
【问题描述】:

我想在不使用按钮的情况下将 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>

【问题讨论】:

    标签: python tkinter


    【解决方案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()
    

    【讨论】:

      【解决方案2】:

      当你绑定一个函数时,函数将被传递一个代表事件的参数。该参数的属性之一是widget,它表示接收到事件的小部件。

      最常见的解决方案是将值传递给回调。相反,让回调使用此对象检索他们需要的信息:

      def print_entry(event):
          print(event.widget.get())
      

      【讨论】:

        猜你喜欢
        • 2016-03-30
        • 1970-01-01
        • 2021-01-02
        • 2013-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多