Глава 18 · Canvas по-настоящему

Теги: группируем и выбираем элементы

item_id указывает на один элемент. Тег может стоять сразу на многих — и работать с группой одной командой.

Тег — это имя, а не число

item_id указывает на ОДИН конкретный элемент. Но часто нужно обратиться сразу к нескольким — например, ко всем нарисованным фигурам сразу, не трогая временную «черновую» фигуру превью. Для этого у Canvas есть теги:

tegi.py
canvas.create_line(
    0, 0, 100, 60,
    fill="black", tags=("shape", "stroke"),
)

Один элемент может носить сразу несколько тегов. Дальше к тегу можно обращаться вместо item_id почти везде, где Canvas ожидает адрес элемента:

operacii_s_tegami.py
canvas.delete("preview")           # убрать все элементы с тегом "preview"
canvas.itemconfig("shape", width=2) # изменить толщину у ВСЕХ элементов с тегом "shape"
item_id против тега
item_id
указывает на ОДИН конкретный элемент
число, которое возвращает create_*
тег
может стоять сразу на многих элементах
строка, которую придумываете вы
тег "shape"
├─ item 12
├─ item 13
└─ item 14
тег "preview"
└─ item 15
В финальном приложении теги пригодятся дважды
Раздел 18.20 использует теги, чтобы показать порядок наложения фигур друг на друга. А черновой элемент превью (раздел 18.18) получает собственный тег "preview", чтобы его можно было убрать одной командой, не перебирая все остальные фигуры.
Практика: теги Canvas
Автоматическая проверка — собираем группы элементов по тегам, где один тег держит сразу несколько id
Открыть практику →