2017-09-19 2 views

答えて

1

通常、この情報はバインディングから取得します。ただし、マウスの下にあるウィジェットを見つけるためにシステムをポーリングする場合は、winfo_pointerxyを使用してマウスの座標を取得し、それらをwinfo_containingに渡してそれらの座標の下にウィジェットを取得することができます。

はここで継続的に、マウスの下にウィジェットを出力するプログラム例です:

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() 
関連する問題