【问题标题】:Event callback after a Tkinter Entry widgetTkinter Entry 小部件之后的事件回调
【发布时间】:2016-12-27 18:46:15
【问题描述】:

从这里的第一个答案: StackOverflow #6548837 我可以在用户输入时调用回调:

from Tkinter import *

def callback(sv):
    print sv.get()

root = Tk()
sv = StringVar()
sv.trace("w", lambda name, index, mode, sv=sv: callback(sv))
e = Entry(root, textvariable=sv)
e.pack()
root.mainloop() 

但是,该事件发生在每个键入的字符上。当用户完成输入并按下回车,或者 Entry 小部件失去焦点(即用户点击其他地方)时,如何调用事件?

【问题讨论】:

    标签: python events tkinter callback


    【解决方案1】:

    为了捕捉 Return 按键事件,标准的 Tkinter 功能可以做到这一点。无需使用StringVar

    def callback(event):
      pass #do the work
    
    e = Entry(root)
    e.bind ("<Return">,callback)
    

    【讨论】:

      【解决方案2】:

      我认为这可以满足您的需求。我找到了相关信息herebind 方法是关键。

      from Tkinter import *
      
      def callback(sv):
          print sv.get()
      
      root = Tk()
      
      sv = StringVar()
      e = Entry(root, textvariable=sv)
      e.bind('<Return>', (lambda _: callback(e)))
      
      e.pack()
      root.mainloop() 
      

      【讨论】:

        猜你喜欢
        • 2012-06-27
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 2012-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-26
        相关资源
        最近更新 更多