一、起步(1.6事件)

1.6事件

Kivy基本上是基于事件驱动的,这也就意味着程序执行顺序被事件所决定。

  1. 时钟事件

    时钟对象允许你使用schedule_once()来定时执行一个函数;或者使用schedule_interval()重复执行一个函数。

    你也可以利用create_trigger()创建一个触发事件,触发器只能被一个框架调用一次,即使你为该回调函数设置了多次触发。

  2. 输入事件

    所有的鼠标点击、触摸、滚轮滚动事件都是MotionEvent事件的一部分;输入事件扩展自输入处理,当在窗口类执行on_motion事件时被发送。在部件中这些事件生成为on_touch_down(),on_touch_move()和on_touch_up()事件。

    要进一步了解,请参阅输入管理

  3. 类事件

    在部件里,我们的事件分发类EventDispatcher被用来有效的管理属性值的变动,这意味着当一个部件改变了它的位置、尺寸,相应的事件就会自动的发送。

    并且,正如在按钮部件中,on_presson_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)文档

下节预告:1.7 非部件类

你可能感兴趣的:(一、起步(1.6事件))