Module pay_calculator.main

Запускной файл проекта.

Модуль отвечает за инициализацию графического интерфейса пользователя (GUI) с использованием библиотеки Tkinter и связывание интерфейса с логикой расчета из модуля calc.

Functions

def main()
Expand source code
def main():
    """Функция запуска проекта и рендеринга GUI.

    Создает главное окно приложения, размещает элементы управления
    (поля ввода, метки, кнопки) и определяет обработчики событий
    для расчета скидки и выхода из приложения.

    The GUI includes:
        - Поле ввода для суммы покупки.
        - Поле ввода для процента скидки.
        - Метку для отображения результата.
        - Кнопку "Посчитать скидку".
        - Кнопку "Выход".
    """
    root = tk.Tk()
    root.title("СкидкаКалькулятор v1")
    root.geometry("400x300")
    tk.Label(root, text="Сумма покупки: ").pack(pady=5)
    amount_entry = tk.Entry(root)
    amount_entry.pack(pady=5)

    tk.Label(root, text="Процент скидки: ").pack(pady=5)
    discount_entry = tk.Entry(root)
    discount_entry.pack(pady=5)

    result_label = tk.Label(root, text="Результат:  ", fg="blue")
    result_label.pack(pady=10)

    def calc_and_show():
        """Обработчик нажатия кнопки расчета.

        Считывает данные из полей ввода, валидирует их и вызывает
        функцию расчета скидки. Результат отображается в метке.
        В случае ошибки ввода показывает сообщение об ошибке.
        """
        try:
            amt = float(amount_entry.get())
            dsc = float(discount_entry.get())
            if amt < 0 or dsc < 0 or dsc > 100:
                messagebox.showerror("Ошибка ", "Некорректные данные! ")
                return
            res = calculate_discount(amt, dsc)
            result_label.config(text=f"Результат: {res:.2f} руб. ")
        except ValueError:
            messagebox.showerror("Ошибка ", "Вводите числа! ")

    calc_btn = tk.Button(root, text="Посчитать скидку ", command=calc_and_show)
    calc_btn.pack(pady=10)

    exit_btn = tk.Button(root, text="Выход ", command=sys.exit)
    exit_btn.pack(pady=5)

    root.mainloop()

Функция запуска проекта и рендеринга GUI.

Создает главное окно приложения, размещает элементы управления (поля ввода, метки, кнопки) и определяет обработчики событий для расчета скидки и выхода из приложения.

The GUI includes: - Поле ввода для суммы покупки. - Поле ввода для процента скидки. - Метку для отображения результата. - Кнопку "Посчитать скидку". - Кнопку "Выход".