Rozdział 18 · Narzędzia do rysowania

Nakładająca się kolejność

Później na szczycie trafia narysowany element – delikatnie Canvas mówiąc.

To, co jest rysowane później, jest na górze

Canvas elementy są przechowywane nie tylko jako lista, ale także w określonej KOLEJNOŚCI – tej, która w którym zostały stworzone. Jeśli dwa elementy nakładają się na siebie, to ten, który został stworzony, będzie górnym Później:

Prawdziwe okno: trzy nakładające się kształty – prostokąt, owal i linia – owal na górze prostokąta, linia na obu
Prawdziwe okno: kolejność tworzenia — prostokąt, potem owal, potem linia. Linia znalazła się na wierzchu.

Ten porządek można zmienić wyraźnie – podnieść element wyżej lub obniżyć pozostałe:

poryadok_sloev.py
canvas.tag_raise(rect_id)          # podnieść prostokąt NAD wszystkimi innymi
canvas.tag_lower(rect_id)          # obniżyć prostokąt POD wszystkie pozostałe
canvas.tag_raise(rect_id, oval_id)  # Podnieś prostokąt tylko POWYŻEJ konkretnego owalu
Okno rzeczywiste: te same trzy figury, ale prostokąt teraz na owalu i linii
Prawdziwe okno: Po tag_raise(rect_id) prostokąt jest teraz wyższy niż pozostałe.
Mała wskazówka dotycząca warstw edytorów graficznych
Prawdziwi edytorzy graficzny budują na tym pomyśle cały system warstw — z ukrywaniem, blokowaniem i grupowaniem. Nie wdrażamy tu żadnej z tych zasad: tag_raise/tag_lower jest tylko dowodem, że kolejność nakładek istnieje i można nią kontrolować, jeśli zajdzie taka potrzeba.
Praktyka: Nakładająca się kolejność
Automatyczna weryfikacja — przewidujemy końcowy porządek po tag_raise/tag_lower
Otwórz praktykę →