Rozdział 18 · Canvas serio
Canvas przechowuje obiekty, a nie piksele
create_line() nie tylko rysuje — dodaje element do lista, który Canvas pamięta siebie.
Canvas nie «maluje pikseli» — przechowuje obiekty
Pierwszy prototyp już rysuje, ale łatwo to sobie źle wyobrazić: jakby
create_line() po prostu maluje piksele na zdjęciu jak pędzel
w edytorze graficznym. W rzeczywistości Canvas działa inaczej — i prawie wszystko od tego zależy
Reszta w tym rozdziale: cofanie akcji, edycja kształtów, kolejność stosowania.
canvas.create_rectangle(...)
↓
Canvas
zapisuje kształt jako
↓
item_id = 3
↓
ekran
Zwrócona liczba — item ID, identyfikator danego elementu wewnątrz Canvas (Rozdział 18.10). Dopóki figura nie zostanie wyraźnie usunięta, Canvas ją zapamięta i może Przerysuj, przesuwaj lub zmieniaj — nawet jeśli twój kod dawno zakończył pracę z tym systemem.
Trzy różne warstwy – nie myl ich
| Warstwa | Co to jest |
|---|---|
| Model aplikacji (Python) | Twoje zmienne i struktury danych to coś, co sam wymyśliłeś |
| Element Canvas (item) | Zapis wewnątrz Canvas z typem, współrzędnymi i parametrami — tworzony przez create_* |
| Piksele na ekranie | Ostatni obraz, który widzi użytkownik, jest wynikiem narysowania elementu |
item ID NIE jest identyfikatorem obiektu Python-
item_id = canvas.create_rectangle(...) zwraca regularną liczbę całkowitą, która jest wewnętrzną liczbą rekordu w obrębie Canvas, zamiast id() jakiś Python- obiekt, a nie indeks z listy, którą sam prowadzisz. Canvas daje liczby według własnych zasad (zwykle rosnących) — nie powinieneś polegać na konkretnych wartościach, a jedynie na fakcie, że każdy item_id unikalny dla jednego elementu.