Глава 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
├─ item 13
└─ item 14
тег "preview"
└─ item 15
В финальном приложении теги пригодятся дважды
Раздел 18.20 использует теги, чтобы показать порядок наложения фигур друг на друга. А черновой элемент превью (раздел 18.18) получает собственный тег
"preview", чтобы его можно было убрать одной командой, не перебирая все остальные фигуры.Практика: теги Canvas
Автоматическая проверка — собираем группы элементов по тегам, где один тег держит сразу несколько id