C'è un modo per ottenere la posizione del mouse e impostarlo come var?Mouse Python Tkinter
12
A
risposta
15
È possibile impostare una richiamata a reagire a <Motion>
eventi:
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()
Non sono sicuro di che tipo di variabili che si desidera. Sopra, ho impostato le variabili locali x
e con le coordinate del mouse.
Se si esegue motion
un metodo di classe, è possibile impostare gli attributi di istanza self.x
e self.y
sulle coordinate del mouse, che potrebbero quindi essere accessibili da altri metodi di classe.
16
In qualsiasi momento è possibile utilizzare il metodo winfo_pointerx
e winfo_pointery
per ottenere le coordinate x, y relative alla finestra radice. Per convertire che a schermo coordinate assolute è possibile ottenere il winfo_pointerx
o winfo_pointery
, e da quel sottrarre il rispettivo winfo_rootx
o winfo_rooty
Ad esempio:
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()
Vedi anche: [Ottenere finestra attiva utilizzando Python] (http: //stackoverflow.com/q/10266281/562769) –