Глава 16 · Создаём классные приложения с Tkinter

Мини-проект — калькулятор чаевых

Первое полноценное приложение книги — с полями ввода, кнопкой и результатом на экране.

Соберём всё изученное в главе в одном настоящем приложении: калькулятор чаевых с полем ввода, кнопкой и меткой результата. Это фундамент — в разделе 16.31 мы вернёмся к нему и превратим в полноценное «Tip Calculator Pro» с классом приложения, валидацией и сохранением настроек.

kalkulyator_chaevyh.py
import tkinter as tk

root = tk.Tk()
root.title("Калькулятор чаевых")

tk.Label(root, text="Сумма счёта:").grid(row=0, column=0, padx=10, pady=10)
schet_entry = tk.Entry(root)
schet_entry.grid(row=0, column=1)

tk.Label(root, text="Процент чаевых:").grid(row=1, column=0, padx=10, pady=10)
procent_entry = tk.Entry(root)
procent_entry.grid(row=1, column=1)

rezultat_label = tk.Label(root, text="", font=("Arial", 14, "bold"))
rezultat_label.grid(row=3, column=0, columnspan=2, pady=10)

def poschitat():
    schet = float(schet_entry.get())
    procent = float(procent_entry.get())
    chaevye = schet * procent / 100
    rezultat_label.config(text=f"Чаевые: {chaevye:.2f}")

tk.Button(root, text="Посчитать", command=poschitat).grid(row=2, column=0, columnspan=2)

root.mainloop()
Какие темы здесь встретились
grid() — раздел 16.7; float() — глава 4; форматирование :.2f — глава 8; сама формула чаевых — глава 12, проект 12-2.
★★★ Задача повышенной сложности
Проверка ввода

Оберните вычисление в try/except (забегая немного вперёд — подробно об этом в главе 21) — чтобы приложение не падало, если пользователь введёт не число, а текст. В разделе 16.23 мы разберём это системно.

Практика: калькулятор чаевых
Модуль tkinter открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →