Rozdział 18 · Narzędzia do rysowania

Narzędzie liniowe

Kropka → szkic, który aktualizuje się na bieżąco → ostatnią pełną linią.

Linia to nie to samo co ołówek

Ołówek nie ma znanego końca: kreska kończy się tam, gdzie użytkownik ją zwalnia przycisk, a linia jest budowana z wielu małych segmentów na bieżąco. Narzędzie Linia ma wszystko w przeciwnym razie jest dokładnie JEDNA prosta linia od punktu nacisku do punktu uwolnienia i do samego końca gestu To tylko szkic, który można wielokrotnie zmieniać.

instrument_liniya.py
def on_press(self, event):
    self.state.start_x, self.state.start_y = event.x, event.y
    self.state.preview_id = self.canvas.create_line(
        event.x, event.y, event.x, event.y,
        fill=self.state.color, width=self.state.width, dash=(4, 2),
    )

def on_drag(self, event):
    self.canvas.coords(
        self.state.preview_id,
        self.state.start_x, self.state.start_y, event.x, event.y,
    )

def on_release(self, event):
    self.canvas.delete(self.state.preview_id)
    self.canvas.create_line(
        self.state.start_x, self.state.start_y, event.x, event.y,
        fill=self.state.color, width=self.state.width,
    )
Prawdziwe okno: Przerywana linia podglądu rozciąga się od punktu kliknięcia do aktualnej pozycji kursora
Rzeczywiste okno: podczas przeciągania — przerywana linia robocza, jeszcze nie finalna.
Real Window: Solidna ostatnia linia zamiast poprzedniego przerywanego zapowiedzi
Prawdziwe okno: przycisk zostaje zwolniony — ciągła linia zastąpiła przerywany szkic.
dash=(4, 2) — sygnał wizualny „to jeszcze nie jest finał”
Kreskowanie w podglądzie — to nie wymóg techniczny Canvas, lecz świadomy wybór: użytkownik powinien gołym okiem odróżnić szkic od gotowego kształtu. Rozdział 18.18 uogólnia tę metodę „utwórz podgląd → zaktualizuj coords() → zatwierdź w release” dla prostokąta i owalu — z linią działa dokładnie tak samo.
Praktyka: Narzędzie linii z podglądem
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →