Rozdział 18 · Narzędzia do rysowania

Grubość pędzla

Liczba w kodzie i szerokość linii na ekranie — pokażemy różnicę na żywo, a nie tylko ją opisujemy.

Grubość w kodzie — oraz grubość na ekranie

Cztery linie tego samego koloru, narysowane o różnych grubościach – różnica jest widoczna od razu, bez potrzeba przedstawienia go w liczbie:

Prawdziwe płótno: Cztery poziome linie o grubości 1, 3, 8 i 16 pikseli, z oznaczonymi liczbami obok siebie
Prawdziwe płótno: width=1, 3, 8, 16 — ta sama linia, różna grubość.
tolschina_kisti.py
self.width_scale = tk.Scale(
    toolbar, from_=1, to=20, orient="horizontal", command=self.set_width,
)
self.width_scale.set(4)

def set_width(self, value):
    self.state.width = int(value)
command w Scale otrzymuje łańcuch znaków, a nie Event
Zgodnie z Sekcją 18.6, Scale otrzymuje wartość gotowego suwaka bezpośrednio za pomocą łańcuch znaków – nie przez obiekt Eventjak .bind(). Stąd oczywiste int(value).
Grubość jest przechowywana w DrawingState, nie tylko w samym Scale
self.state.width jest źródłem prawdy, którą czytamy on_press/on_drag. tk.Scale to tylko przydatny widget do jego modyfikacji, a nie repozytorium samo w sobie: ta sama logika „widżet wyświetla stan, nie jest”
Praktyka: suwak grubości pędzla
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →