1.6事件
Kivy基本上是基于事件驅(qū)動的,這也就意味著程序執(zhí)行順序被事件所決定江兢。
-
時鐘事件
時鐘對象允許你使用schedule_once()來定時執(zhí)行一個函數(shù);或者使用schedule_interval()重復執(zhí)行一個函數(shù)丁频。
你也可以利用create_trigger()創(chuàng)建一個觸發(fā)事件杉允,觸發(fā)器只能被一個框架調(diào)用一次邑贴,即使你為該回調(diào)函數(shù)設置了多次觸發(fā)。
-
輸入事件
所有的鼠標點擊叔磷、觸摸拢驾、滾輪滾動事件都是MotionEvent事件的一部分;輸入事件擴展自輸入處理改基,當在窗口類執(zhí)行on_motion事件時被發(fā)送繁疤。在部件中這些事件生成為on_touch_down(),on_touch_move()和on_touch_up()事件秕狰。
要進一步了解稠腊,請參閱輸入管理
-
類事件
在部件里,我們的事件分發(fā)類EventDispatcher被用來有效的管理屬性值的變動鸣哀,這意味著當一個部件改變了它的位置架忌、尺寸,相應的事件就會自動的發(fā)送我衬。
并且叹放,正如在按鈕部件中,on_press和on_release等事件所展示的那樣挠羔,你可以利用register_event_type創(chuàng)建自定義事件井仰,
另外你需要注意的是,如果你重載了一個事件褥赊,那么你就必須處理它在基類中定義的所有行為糕档。一個最容易的方式是調(diào)用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)文檔