Rozdział 18 · Narzędzia do rysowania

System Kolorów

Sześć szybkich kolorów i colorchooser dla każdego innego — kolor trzeba zobaczyć, a nie tylko czytać kod hex.

Kolor trzeba widzieć, a nie tylko czytać w kodzie

Sześć kolorów palety końcowej aplikacji to nie abstrakcyjne łańcuch znaków, lecz konkretne odcienie:

Black
#111827
Red
#dc2626
Blue
#2563eb
Green
#16a34a
Pomarańczowy
#f59e0b
Fioletowy
#7c3aed
Okno rzeczywiste: rząd kolorowych przycisków palety nad płótnem
Prawdziwe okno: ta sama paleta — każdy przycisk jest pomalowany na własny bg=hex_color.

Własny kolor — przez colorchooser

Gotowa paleta — to tylko sześć wariantów. Moduł tkinter.colorchooser otwiera natywne okno dialogowe systemu do wyboru dowolnego koloru:

custom_color.py
from tkinter import colorchooser

def choose_custom_color(self):
    _rgb, hex_color = colorchooser.askcolor(color=self.state.color, title=„Wybierz kolor”)
    if hex_color is not None:
        self.set_color(hex_color)
Konspekt dialogu (nie prawdziwy zrzut ekranu)
Wybierz kolor
Obecnie: #7c3aed
Anulowanie
OK
colorchooser natywny schemat dialogowy jest headless Xvfb nie renderuje przewidywalnie bez prawdziwego kliknięcia użytkownika, więc jego struktura jest pokazana tutaj, a nie zrzut ekranu.
askcolor() może powrócić (None, None)
Jeśli użytkownik kliknie „Anuluj” askcolor() zwroty (None, None), a nie jakiś domyślny kolor. Kod musi sprawdzić hex_color is not None przed użyciem — w przeciwnym razie następne wywołanie oczekujące łańcuch znaków jak "#7c3aed", otrzyma None i pojawi się błąd.
Real Window: Obecny kolor na pasku został zmieniony na niestandardowy cień wybrany za pomocą
Realne okno: Efektem wyboru niestandardowego koloru jest to, że dialogi nie znajdują się w kadrze, ale efekt jest naprawdę widoczny.
Praktyka: Paleta i niestandardowy kolor
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →