Kivy 特定のウェジットだけでon_touch_downを使う(Python クリックした座標を取り出す)
はじめに
クリックした座標を取りたくて「on_touch_down」を利用したらボタンが押せなくなりました。その時に使った対処法です。
def on_touch_down(self, touch): print(touch.pos)
これだとマウスをクリックした座標は取れますが、ほかの操作(ボタンを押す)が効かなくなります。
解決策(例)
kvファイルで「on_touch_down:」の行を追加して
BoxLayout: orientation: "vertical" Image: id: image1 size_hint_y: 10 texture: root.image_texture on_touch_down: root.on_image1_down(args[1])
メインプログラムを変更します。
def on_image1_down(self, touch): print(touch.pos)
解説
「args[1]」が「on_touch_down」の引数「touch」と同じになります。ちなみに「touch.pos」が絶対座標でレイアウト全体からみた座標です。
まとめ
クリックした座標を原点に正方形を描画してみました。
次回は正方形を消す方法を調べてみます。