Czy istnieje sposób, aby uzyskać pozycję myszy i ustawić ją jako var?Pozycja myszy Python Tkinter
12
A
Odpowiedz
15
Można założyć zwrotnego reagować na <Motion>
zdarzeń:
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()
Nie jestem pewien, jaki rodzaj zmiennej chcesz. Powyżej ustawiam zmienne lokalne x
i y
na współrzędne myszy.
Jeśli uczynisz motion
metodą klasową, możesz ustawić atrybuty instancji self.x
i self.y
na współrzędne myszy, które mogą być następnie dostępne z innych metod klasy.
16
W dowolnym momencie można użyć metody winfo_pointerx
i winfo_pointery
, aby uzyskać współrzędne x, y względem okna głównego. Aby przekonwertować że do absolutnego ekranie współrzędne można uzyskać winfo_pointerx
lub winfo_pointery
, i od tego odjąć odpowiedniej winfo_rootx
lub winfo_rooty
na przykład:
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()
Zobacz również: [Uzyskaj aktywnego okna przy użyciu Python] (http: //stackoverflow.com/q/10266281/562769) –