我目前正在努力充分利用kivy的时钟非计划操作。我按下一个键就可以为回调分配一个时间表。我已经实现了预定的回调,但是我也想做的是一旦按下一个键,它不仅会启动回调,还会取消任何现有的回调。我的问题是虽然我编写了一个event.cancel(),但该事件根本没有被取消。整个程序有点大,但我可以显示直接使用时钟的代码。
def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
event0 = Clock.create_trigger(lambda dt: self.pressHome(), 3)
event1 = Clock.create_trigger(lambda dt: self.selectFig(coord = 'A2'), 2)
event2 = Clock.create_trigger(lambda dt: self.selectFig(coord = 'A3'), 4)
if keycode[1] == 'd':
coord = 'A3'
self.selectFig(coord)
event1()
event2()
event0.cancel()
elif keycode[1] == 'f':
coord = 'A4'
self.selectTxt(coord)
event1.cancel()
event2.cancel()
event0()
答案 0 :(得分:0)
您每次都在创建新事件,因此您不取消旧事件
可能的修复方法可能只是一次:
创建触发器sudo vagrant plugin install vagrant-libvirt