Tkinter:将<Enter>事件绑定到整个窗口(但不是所有窗口小部件)

时间:2019-06-08 23:33:53

标签: python tkinter

我的目标是将事件绑定到窗口。例如,我要在鼠标指针进入窗口时调用一个函数。下面的代码可以做到这一点,但是遗憾的是,每当鼠标指针进入Button时,该函数也会被调用。我尝试了B.unbind("<Enter>"),但是它不起作用。任何帮助将不胜感激

import tkinter as tk
root = tk.Tk()

def function(event):
    print("Hello World")

B = tk.Button(root, text ="Label")

root.bind("<Enter>",function)
root.geometry("100x100")
B.pack()

root.mainloop()

1 个答案:

答案 0 :(得分:0)

一种实现此目的的方法是检查event.widget并查看它是否是Tk实例的根窗口。

import tkinter as tk

root = tk.Tk()

def function(event):
    if isinstance(event.widget,tk.Tk): #check if event widget is Tk root window
        print("Hello World")

B = tk.Button(root, text ="Label")

root.bind("<Enter>",function)
root.geometry("100x100")
B.pack()

root.mainloop()