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行ほど吐き出すので、ちょっと鬱陶しいです。