H

【備忘録的な】PySimpleGUIのCanvas要素内でカーソルを追跡する

前略。

import tkinter as tk
import PySimpleGUI as sg

canvas = sg.Canvas((100, 100), key='meow')

window = sg.Window(title='Nyan!!!', layout=[[canvas]])
window.finalize()

window['meow'].bind('<Button1-Motion>', '_Nyago')

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
            break
    elif event == 'meow_Nyago':
            print(canvas.user_bind_event.x, canvas.user_bind_event.y)

window.close()

 これでcanvas内においてカーソルを動かすと,座標が取得できる。
ポイントは

print(canvas.user_bind_event.x, canvas.user_bind_event.y)

の部分