Есть ли способ получить позицию мыши и установить ее как var?Позиция мыши Python Tkinter
12
A
ответ
15
Вы можете настроить функцию обратного вызова, чтобы реагировать на события <Motion>
:
import Tkinter as tk
root = tk.Tk()
def motion(event):
x, y = event.x, event.y
print('{}, {}'.format(x, y))
root.bind('<Motion>', motion)
root.mainloop()
Я не уверен, какой переменной вы хотите. Выше, я устанавливаю локальные переменные x
и y
в координаты мыши.
Если вы сделаете метод класса, то вы можете установить атрибуты экземпляра self.x
и self.y
координатам мыши, которые затем могут быть доступны из других методов класса.
16
В любой момент времени вы можете использовать метод winfo_pointerx
и winfo_pointery
, чтобы получить координаты x, y относительно корневого окна. Для того, чтобы преобразовать его к абсолютному координат экрана вы можете получить winfo_pointerx
или winfo_pointery
, и из этого вычесть соответствующую winfo_rootx
или winfo_rooty
Например:
root = tk.Tk()
...
x = root.winfo_pointerx()
y = root.winfo_pointery()
abs_coord_x = root.winfo_pointerx() - root.winfo_rootx()
abs_coord_y = root.winfo_pointery() - root.winfo_rooty()
Смотрите также: [Получить активное окно с помощью Python] (HTTP: //stackoverflow.com/q/10266281/562769) –