Глава 18 · Проект: приложение для рисования

Выбираем размер! Очень много цветов!

Ползунок толщины и палитра цветов, построенная циклом по списку.

Выбираем размер!

Виджет Scale — ползунок для выбора числа в диапазоне, отлично подходит для толщины линии:

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 у Scale получает значение, а не событие
В отличие от .bind(), обработчик Scale получает готовое строковое значение ползунка напрямую — поэтому vybrat_tolschinu(znachenie) сразу превращает его в число через int() (глава 4).

Очень много цветов!

Палитру цветов легко построить циклом (глава 10) по списку названий (глава 11) — вместо того, чтобы создавать каждую кнопку вручную:

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")
lambda c=cvet — та же тонкость, что и в главе 17
Без c=cvet все кнопки палитры выбирали бы последний цвет из списка — та же самая ловушка с лямбдами внутри цикла, что мы уже разбирали в проекте «Крестики-нолики».
Практика в Jupyter Notebook
18-06-razmer-cveta.ipynb · Scale и палитра цветов
Открыть ноутбук →