Привязка событий

Последнее обновление: 25.09.2022

С помощью метода tag_bind() можно привязать к определенному элементу в Canvas (например, к линии) событие:

tag_bind(тег_или_идентификатор_элемента, событие, функция)

Первый параметр представляет тег или идентификатор элеиментов, для которых добавляется событие.

Второй параметр - обрабатываемое событие.

Третий параметр - функция, которая выполняется при возникновении события

Рассмотрим небольшой пример:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")

canvas = Canvas(bg="white", width=250, height=150)
canvas.pack(fill=BOTH, expand=1)

# размеры прямоугольника
big_size = (60, 60, 150, 150)
small_size = (60, 60, 100, 100)

# обработчики событий
def make_big(event): canvas.coords(id, big_size)
def make_small(event): canvas.coords(id, small_size)

id = canvas.create_rectangle(small_size, fill="red")
# привязка событий к элементу с идентификатором id
canvas.tag_bind(id, "<Enter>", make_big)
canvas.tag_bind(id, "<Leave>", make_small)

root.mainloop()

Здесь на Canvas добавляется прямоугольник, идентификатор которого хранится в переменной id.

Сначала привязываем к прямоугольнику с идентификатором id событие "<Enter>", то есть событие вхождения курсора в пределы прямогольника:

canvas.tag_bind(id, "<Enter>", make_big)

Когда указатель мыши окажется в пределах прямогольника, сработает функция make_big, которая с помощью метода canvas.coords изменит координаты и размеры прямоугольника:

def make_big(event): canvas.coords(id, big_size)

Аналогичным образом привязывается событие "<Leave>", которое срабатывает, когда указатель мыши выходит за пределы прямоугольника. В этом случае срабатывает функция make_small, которая уменьшит размер прямоугольника.

Привязка событий в Canvas в приложении на tkinter в Python
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850