Чувствительность объекта Tkinter к указателю мыши

#python #tkinter #mouse

#python #tkinter #мышь

Вопрос:

Я создаю программу на python с использованием tkinter, но у меня проблема. Мне нужно добавить код, который заставляет мой объект tkinter воспринимать, когда указатель мыши касается его.

Есть ли у кого-нибудь рекомендации относительно того, что я должен делать? До сих пор я думал, что мог бы написать код, который выполняется следующим образом: если координаты указателя мыши совпадают с координатами объекта, объект будет реагировать на это вместо этого.

Комментарии:

1. Что вы хотите, чтобы он делал, когда он зависает над ним?

2. Вы можете сделать это, привязав функции обработчика событий к событиям '<Enter>' и '<Leave>' мыши. Вот несколько примеров кода . Это иногда называют «наведением» или «зависанием».

Ответ №1:

Вы можете привязываться к событиям <Enter> и <Leave> . Они будут срабатывать всякий раз, когда указатель мыши входит в виджет и покидает его.

Вот небольшая демонстрация:

 import tkinter as tk

def on_mouse_enter(event):
    print("enter...", event.widget)

def on_mouse_leave(event):
    print("leave...", event.widget)

root = tk.Tk()
for i in range(10):
    label = tk.Label(root, text="Item #{}".format(i), name='label-{}'.format(i))
    label.pack()
    label.bind("<Enter>", on_mouse_enter)
    label.bind("<Leave>", on_mouse_leave)

tk.mainloop()