Tkinter: привязать событие <Enter>ко всему окну (но не ко всем виджетам) - PullRequest
0 голосов
/ 09 июня 2019

Моя цель - привязать событие к окну. Например, я хочу, чтобы функция вызывалась, когда указатель мыши входит в окно. Приведенный ниже код делает это, но, к сожалению, функция также вызывается всякий раз, когда указатель мыши входит в кнопку. Я пытался 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 голосов
/ 10 июня 2019

Один из способов сделать эту работу - проверить наличие 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...