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:
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