Pythonで、クリックした画面上の座標を求める方法
※ Pythonに関しては最低限の知識がある方向けです。
まずは、インストール
pynputは外部パッケージなので、pip等を用いインストールします。
pip install pynput
座標を求めるコード
インストールしたら、次のコードを動かせるようになります。
cursol.py
from pynput.mouse import Listener
def on_click(x, y, button, pressed):
if pressed:
print('{:5.1f}, {:5.1f}'.format(x, y))
with Listener(on_click = on_click) as listener:
listener.join()
コードの解説
クリックで押された時に離れた時に、定義されたon_clickが呼ばれます。
- 第1引数
xは、普通の右方向のx軸。左端が0.0。 - 第2引数
yは、下方向のy軸。上端が0.0。 - 第3引数
buttonは、<enum 'Button'>。 - 第4引数
pressedは、押されたときにTrueで、離れたときにFalse。
どちらか片方がわかれば良かったので、押されたときだけ表示するように条件分岐しています。
クリックされた位置x, yはfloat(浮動小数点数)です。
そのままprintで表示すると、小数点未満がたくさん表示され鬱陶しいです。
そこで、コード上ではformatを用いて、
小数点未満は四捨五入で1桁にし、また(小数点含めて)5文字分の幅で右寄せで表示するようにしました。
# そのまま左寄せ表示する
80.1, 10.8
150.2, 400.3
# 5文字分で右寄せで表示する
80.1, 10.8
150.2, 400.3
それから、カンマ(+スペース)で区切るようにしてあります。
【注意】プログラムを止める方法
実行させたあとプログラムを止める方法は、
自分のMacの場合、control + zかcontrol + cでした。
後者ですと、Pythonがエラーメッセージを10行ほど吐き出すので、ちょっと鬱陶しいです。