たそらぼ

日頃思ったこととかメモとか。

A Simple Paint App

Kivyチュートリアル(A Simple Paint App)を満喫しました。

f:id:tasotasoso:20181108231605p:plain

コード

チュートリアルだと、なんかよくわからなかったので、
コメントをつけてまとめました。

kivy sample (painter)

Widgetのイベントに対する動作

on_touch_down
on_touch_move
on_touch_up
の3メソッドがWidgetクラスにあるので、いい感じにオーバーライドします。

Pong Game Tutorial — Kivy 1.10.1 documentation
の下の方で、
"In Kivy, a widget can react to input by implementing the on_touch_down, the on_touch_move and the on_touch_up methods. By default, the Widget class implements these methods by just calling the corresponding method on all its child widgets to pass on the event until one of the children returns True."
と記載あり。

MyPaintAppクラス

ここが初めて見たときによくわからなかったのですが、
コンソールから呼んだ際に、build()が動いてアプリケーションインスタンスができてrunするイメージなのかなと思いました。

build()の中身は、
①親のWigetインスタンスを生成する。
②他のインスタンスを生成する。
 (このとき、提供済みのインスタンスに動作をつけたいのであれば、クラス内で関数を定義してbindしておく)
③親インスタンスインスタンスをまとめて、returnする。

build()と同じレベルで、インスタンスにbindされる関数が定義されるので、
はじめは混乱しました。