Позиция Мыши Python Tkinter
есть ли способ получить положение мыши и установить его как var?
3 ответов
вы можете настроить обратный вызов, чтобы реагировать на <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 к координатам мыши.
если вы motion метод класса, затем вы можете установить атрибуты экземпляра self.x и self.y получить координаты мыши, которые затем могут быть доступны из других методов класса.
в любой момент времени вы можете использовать метод 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()
лично я предпочитаю использовать pyautogui, даже в сочетании с Tkinter. Он не ограничивается приложением Tkinter, но работает на всем экране, даже в конфигурации с двумя экранами.
import pyautogui
x, y = pyautogui.position()
Если вы хотите сохранить различные позиции, добавьте событие on-click.
Я знаю, что оригинальный вопрос про Tkinter.