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

Создаём первое меню (фигуры)

Панель инструментов с кнопками выбора фигуры — и переменные, хранящие текущее состояние.

Создаём первое меню (фигуры)

Панель инструментов — обычный Frame (глава 16) с кнопками, каждая из которых выбирает свою фигуру:

menu_figur.py
toolbar = tk.Frame(root)
toolbar.pack(side="top", fill="x")

def vybrat_figuru(figura):
    global tekuschaya_figura
    tekuschaya_figura = figura

tk.Button(toolbar, text="Линия", command=lambda: vybrat_figuru("linia")).pack(side="left")
tk.Button(toolbar, text="Прямоугольник", command=lambda: vybrat_figuru("pryamougolnik")).pack(side="left")
tk.Button(toolbar, text="Овал", command=lambda: vybrat_figuru("oval")).pack(side="left")
Реальное окно: панель инструментов с кнопками Линия, Прямоугольник, Овал над пустым холстом
Реальное окно: панель инструментов уже видна, хотя рисовать фигуры мы пока не умеем.

Заставляем параметры рисования работать!

Заведём глобальные переменные для текущей фигуры, цвета и толщины линии — их будут менять кнопки панели инструментов и читать функции рисования:

parametry.py
tekuschaya_figura = "linia"
tekuschij_cvet = "black"
tolschina = 3
Прототип: глобальные переменные — не финал архитектуры
Три глобальные переменные легко читать и объяснить, пока приложение маленькое — тот же выбор мы уже видели в первом прототипе крестиков-ноликов (глава 17). Раздел 18.13 покажет, во что это вырастает, когда инструментов, действий и истории становится больше.
Практика: панель инструментов и параметры рисования
Модуль tkinter открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →