2017-09-19 2 views

Répondre

1

Normalement vous obtenez cette information d'une liaison. Cependant, si vous voulez interroger le système à tout moment pour trouver quel widget est sous la souris, vous pouvez utiliser winfo_pointerxy pour obtenir les coordonnées de la souris, puis les passer à winfo_containing pour obtenir le widget sous ces coordonnées.

Voici un exemple de programme qui imprime en continu le widget sous la souris:

import tkinter as tk 

def print_widget_under_mouse(root): 
    x,y = root.winfo_pointerxy() 
    widget = root.winfo_containing(x,y) 
    print("widget:", widget) 
    root.after(1000, print_widget_under_mouse, root) 

root = tk.Tk() 
label_foo = tk.Label(root, text="Foo", name="label_foo") 
label_bar = tk.Label(root, text="Bar", name="label_bar") 
button = tk.Button(root, text="Button", name="button") 

button.pack(side="bottom") 
label_foo.pack(fill="both", expand=True) 
label_bar.pack(fill="both", expand=True) 

print_widget_under_mouse(root) 

root.mainloop()