Rozdział 18 · Projekt: Aplikacja do rysowania

Wybieramy rozmiar! Bardzo dużo kolorów!

Suwak grubości i wybór kolorów budowane przez pętlę na liście.

Wybierz rozmiar!

Widżet Scale — suwak do wyboru liczby w zakresie, świetnie nadaje się do grubości linii:

vybor_razmera.py
def vybrat_tolschinu(znachenie):
    global tolschina
    tolschina = int(znachenie)

tolschina_scale = tk.Scale(toolbar, from_=1, to=10, orient="horizontal", command=vybrat_tolschinu)
tolschina_scale.set(3)
tolschina_scale.pack(side="left")
command w Scale otrzymuje wartość, a nie zdarzenie
W przeciwieństwie do .bind(), Handler Scale otrzymuje wartość końcowego łańcuch znaków suwaka bezpośrednio — więc vybrat_tolschinu(znachenie) natychmiast zamienia to w liczbę przez int() (Rozdział 4).
Prawdziwe płótno: Cztery linie tego samego koloru o grubości 1, 3, 8 i 16 pikseli, oznaczone cyframi
Rzeczywiste płótno: ta sama linia przy różnej grubości — liczby w kodzie zamieniają się w konkretną różnicę na ekranie.

Dużo kwiatów!

Paletę kolorów można łatwo zbudować pętlą (rozdział 10) po liście nazw (rozdział 11) — zamiast tworzyć każdy przycisk ręcznie:

vybor_cveta.py
cveta = ["black", "red", "blue", "green", "orange", "purple"]
for cvet in cveta:
    tk.Button(toolbar, bg=cvet, width=2, command=lambda c=cvet: vybrat_cvet(c)).pack(side="left")
Real Window: Pasek narzędzi z serią kolorowych kwadratowych przycisków palety
Rzeczywiste okno: sześć przycisków-kwadratów, każdy w kolorze przycisku bg=cvet — paleta widoczna wcześniej niż efekt rysowania nią.
lambda c=cvet to ta sama subtelność co w rozdziale 17
Bez c=cvet wszystkie przyciski palety wybierały ostatni kolor z listy to ta sama pułapka z lambdami wewnątrz cyklu, którą już przeanalizowaliśmy w projekcie kółko-krzyżyk.
Praktyka: Scale i paleta kolorów
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →