【问题标题】:Python: Tkinter Keypress Event Trigger once: Hold vs. PressedPython:Tkinter Keypress 事件触发一次:按住与按下
【发布时间】:2015-10-12 19:16:13
【问题描述】:

我必须怎么做才能使我与<KeyPress> 事件绑定的函数只触发一次,即使我按住键也是如此?

【问题讨论】:

    标签: python events triggers tkinter keypress


    【解决方案1】:

    您可能无能为力。很可能是键盘本身正在发送多个事件(即:这是一个无法通过软件解决的硬件问题)。

    这些事件可能非常接近 - 可能每 100 毫秒左右。您可以使用这些知识来影响您处理事件的方式。例如,如果在最后一次按下后至少 200 毫秒,您只能在按键释放时执行特殊操作。

    【讨论】:

      【解决方案2】:

      谢谢,我希望 tkinter 有类似 KeyPressed 或 KeyPressing Event 之类的东西。我为这个问题做了一个解决方法。

      from tkinter import*
      
      m='<KeyPress>'
      n='<KeyRelease>'
      
      global kp
      kp=0
      
      def press(event):
          global kp
      
          if (kp!=event.keysym):
              print(event.keysym)
              kp=event.keysym
      
      
      
      def release(event):
          global kp
      
          print(event.keysym)
          kp=0
      
      root.bind(m,press)
      root.bind(n,release)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        相关资源
        最近更新 更多