1.6事件
Kivy基本上是基于事件驅(qū)動的,這也就意味著程序執(zhí)行順序被事件所決定。
-
時鐘事件
時鐘對象允許你使用schedule_once()來定時執(zhí)行一個函數(shù);或者使用schedule_interval()重復(fù)執(zhí)行一個函數(shù)。
你也可以利用create_trigger()創(chuàng)建一個觸發(fā)事件,觸發(fā)器只能被一個框架調(diào)用一次,即使你為該回調(diào)函數(shù)設(shè)置了多次觸發(fā)。
-
輸入事件
所有的鼠標(biāo)點擊、觸摸、滾輪滾動事件都是MotionEvent事件的一部分;輸入事件擴展自輸入處理,當(dāng)在窗口類執(zhí)行on_motion事件時被發(fā)送。在部件中這些事件生成為on_touch_down(),on_touch_move()和on_touch_up()事件。
要進(jìn)一步了解,請參閱輸入管理
-
類事件
在部件里,我們的事件分發(fā)類EventDispatcher被用來有效的管理屬性值的變動,這意味著當(dāng)一個部件改變了它的位置、尺寸,相應(yīng)的事件就會自動的發(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)文檔