对正在输入的文本执行事件

时间:2009-06-04 15:01:16

标签: tkinter

我在python中使用tkinter,并希望向Entry小部件添加一个事件。 我希望它等待输入文本,然后在输入文本时执行操作。

产生影响的东西:

self.entry(command=self.event)

无论如何都要这样做?

1 个答案:

答案 0 :(得分:1)

您没有指定如何确定用户已完成输入。你可以:

  • 使用超时 - 如果延迟超过3秒,请检查两个字母和处理输入之间经过的时间。您的典型用户不会喜欢这种解决方案,但看起来这就是您所追求的。这样做的方法:

    1. “定义”您的StringVar:s = Tkinter.StringVar(root)
    2. assign callback用于写入您的StringVar:s.trace('w', handle_input)
    3. 处理 handle_input 回调中的延迟检查和有用代码
    4. 创建Entry小部件时,将StringVar作为textvariable传递:e = Tkinter.Entry(root, textvariable=s)
  • 完成输入 - bind "<Enter>"事件后,使用输入键进入小部件:

    e.bind('<Enter>', handle_input)