【发布时间】:2015-10-12 19:16:13
【问题描述】:
我必须怎么做才能使我与<KeyPress> 事件绑定的函数只触发一次,即使我按住键也是如此?
【问题讨论】:
标签: python events triggers tkinter keypress
我必须怎么做才能使我与<KeyPress> 事件绑定的函数只触发一次,即使我按住键也是如此?
【问题讨论】:
标签: python events triggers tkinter keypress
您可能无能为力。很可能是键盘本身正在发送多个事件(即:这是一个无法通过软件解决的硬件问题)。
这些事件可能非常接近 - 可能每 100 毫秒左右。您可以使用这些知识来影响您处理事件的方式。例如,如果在最后一次按下后至少 200 毫秒,您只能在按键释放时执行特殊操作。
【讨论】:
谢谢,我希望 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)
【讨论】: