Сценарий canvas1 не использует тот факт, что у каждого помещаемого на холст объекта есть идентификатор. Его возвращает метод create_, который рисует или встраивает объект (в примерах предыдущего раздела он был представлен переменной id). Этот идентификатор можно впоследствии передавать другим методам, чтобы переместить объект в новые координаты, установить параметры его настройки, удалить с холста, поднять или опустить относительно других перекрывающихся объектов и так далее
Например, метод move холста может принимать идентификатор объекта и смещения (не координаты) X и Y, и перемещать объект согласно заданному смещению:
canvas.move(objectIdOrTag, offsetX, offsetY) # переместить объект(ы)
Если при этом объект смещается за пределы холста, он просто обрезается (не показывается). К объектам можно также применять другие часто используемые операции:
canvas.delete(objectIdOrTag) # удалить объект(ы) с холста
canvas.tkraise(objectIdOrTag) # поднять объект(ы) вверх
canvas.lower(objectIdOrTag) # опустить объект(ы) вниз
canvas.itemconfig(objectIdOrTag, fill=’red’) # залить объект(ы) красным цветом
Обратите внимание на имя tkraise — слово raise является в языке Python зарезервированным. Заметьте также, что для настройки объектов, изображенных на холсте, после их создания используется метод itemconfig; метод config применяется для изменения параметров самого холста. Однако главное, что нужно отметить, — это возможность обработать сразу весь графический объект, поскольку библиотека tkinter оперирует структурированными объектами — не нужно поднимать и перерисовывать каждый пиксель вручную, чтобы осуществить перемещение или подъем объекта.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011