Глава 18 · Инструменты рисования

itemconfig, move, delete

Элемент Canvas не обязательно пересоздавать — его можно изменить на месте.

Четыре способа обратиться к уже нарисованному

МетодЧто меняет
canvas.coords(id, ...)координаты элемента — форму и положение
canvas.itemconfig(id, ...)визуальные параметры — цвет, толщину, стиль — без изменения формы
canvas.move(id, dx, dy)сдвигает элемент НА dx, dy — а не задаёт абсолютную позицию
canvas.delete(id)убирает элемент насовсем
redaktirovanie.py
item_id = canvas.create_rectangle(10, 10, 80, 60, outline="black", width=2)

canvas.itemconfig(item_id, outline="blue", width=4)   # тот же прямоугольник, другой вид
canvas.move(item_id, 30, 0)                           # сдвинуть на 30px вправо
canvas.coords(item_id, 10, 10, 150, 100)               # изменить сами границы
canvas.delete(item_id)                                # убрать совсем
move(id, dx, dy) — это смещение, а не координата
canvas.move(item_id, 30, 0) означает «сдвинь на 30 пикселей вправо от текущего положения», а не «помести на x=30». Вызвать move() дважды подряд с одними и теми же аргументами сдвинет элемент на общие 60 пикселей, а не оставит его на месте.

Все три способа — coords(), itemconfig(), move() — работают и по item_id, и по тегу (раздел 18.11): canvas.itemconfig("preview", ...) изменит сразу все элементы с этим тегом.

Практика: coords, itemconfig, move, delete
Модуль tkinter открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →