Quick search

Table Of Contents

Events(翻訳済み)

Kivyは イベントベース で、プログラムの流れを意味するイベントによって決定されます

Clock events(クロックイベント)

../_images/gs-events-clock.png

Clock object(翻訳ずみ) は、schedule_once() に将来的に一回限りのイベントを schedule_interval() に繰り返し行うイベントをスケジュールできます。

You can also create Triggered events with create_trigger(). Triggers have the advantage of being called only once per frame, even if you have scheduled multiple triggers for the same callback.

Input events(入力イベント)

../_images/gs-events-input.png

すべてのマウスクリック、タッチとスクロールは MotionEvent の一部で、Input Postprocessing によって拡張され、Window クラスの中で on_motion イベントを通じて送られます。これらのイベントは Widget にて on_touch_down()on_touch_move()on_touch_up() イベントを生み出します。

詳細な説明については、Input management を見ます。

Class events(クラスイベント)

../_images/gs-events-class.png

Widget により用いられるベースクラスの EventDispatcher は変更を送るために、Properties を使います。これは、Widgetの位置やサイズを変更したときに、対応するイベントが自動的に発生します。

加えて、Button widget内の 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

Events and Properties (翻訳済み) のドキュメントを読むことで、イベントに慣れましょう。