我正在尝试检测长按事件,如果按钮在计时器超时之前被释放则取消它,但是计时器永远不会被取消并在短按或长按时触发:
from threading import Thread
but_down = Timer(1.5,long_press)
if(but=='down'):
but_down.start()
else:
but_down.cancel()
def long_press():
print('long press')
答案 0 :(得分:2)
由于错误,您的代码没有为我运行,但一旦我修复了它,它运行良好:
1.5秒后输出长按:
from threading import Timer
but = "down"
def long_press():
print('long press')
but_down = Timer(1.5,long_press)
if(but=='down'):
but_down.start()
else:
but_down.cancel()
这不输出任何内容:
from threading import Timer
but = "up"
def long_press():
print('long press')
but_down = Timer(1.5,long_press)
if(but=='down'):
but_down.start()
else:
but_down.cancel()
我不知道but
是什么,但我的猜测是你的but=='down'
测试可能是错误的原因。