Глава 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 и палитра цветов