Глава 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
Практика выполняется локально