1.6事件
Kivy基本上是基于事件驱动的,这也就意味着程序执行顺序被事件所决定。
-
时钟事件
时钟对象允许你使用schedule_once()来定时执行一个函数;或者使用schedule_interval()重复执行一个函数。
你也可以利用create_trigger()创建一个触发事件,触发器只能被一个框架调用一次,即使你为该回调函数设置了多次触发。
-
输入事件
所有的鼠标点击、触摸、滚轮滚动事件都是MotionEvent事件的一部分;输入事件扩展自输入处理,当在窗口类执行on_motion事件时被发送。在部件中这些事件生成为on_touch_down(),on_touch_move()和on_touch_up()事件。
要进一步了解,请参阅输入管理
-
类事件
在部件里,我们的事件分发类EventDispatcher被用来有效的管理属性值的变动,这意味着当一个部件改变了它的位置、尺寸,相应的事件就会自动的发送。
并且,正如在按钮部件中,on_press和on_release等事件所展示的那样,你可以利用register_event_type创建自定义事件,
另外你需要注意的是,如果你重载了一个事件,那么你就必须处理它在基类中定义的所有行为。一个最容易的方式是调用super():
def on_touch_down(self, touch):
if super(OurClassName, self).on_touch_down(touch):
return True
if not self.collide_point(touch.x, touch.y):
return False
print('you touched me!')
return True
如果想对事件有更深入的了解,请参阅[事件和属性](https://kivy.org/docs/guide/events.html)文档