Rozdział 18 · Canvas serio
Item ID: co wraca create_*
Liczba, którą create_* zwraca — to nie jest pusta formalność: jest to sposób, aby później wrócić do figury.
create_* zwraca identyfikator
Każde wyzwanie canvas.create_line/rectangle/oval(...) zwroty
Liczba całkowita — item ID właśnie utworzonego elementu. Jeśli go nie zapiszesz,
figura i tak się narysuje, ale później nie będzie można się do niej odwołać:
item_id.py
item_id = canvas.create_rectangle(10, 10, 100, 60, outline="blue")
print(item_id) #, na przykład 1 – konkretna liczba zależy od tego, ile przedmiotów zostało już utworzonych
Ta liczba przydaje się w trzech kwestiach, które omówimy później w rozdziale:
Po co pamiętać item_id
coords(item_id, ...)
zmienić współrzędne istniejącego przedmiotu
Rozdział 18.18–18.19
itemconfig(item_id, ...)
zmienić kolor/grubość bez ponownego tworzenia
Rozdział 18.19
delete(item_id)
usunąć ten konkretny element, nie wszystkie pozostałe
sekcje 18.19, 18.24
item_id nie jest indeksem listy ani id() obiektem Python
Pokusa, by sądzić, że
item_id pozycja na liście ("pierwszy kształt to id 0", "drugi to id 1") jest wadliwy: Canvas daje liczby według własnych reguł i nie musi zaczynać od zera ani nie robić przerw po usunięciu elementów. Nie polegaj na konkretnych wartościach, tylko na tym, że każdy item_id unikalnie odnosi się do jednego elementu.Praktyka: item ID
Automatyczna kontrola — przechowujemy figury po item_id jako klucz słownika, a nie według indeksu listy