import tkinter
from tkinter import Tk, Frame, Label, Entry, Button, messagebox
# 2. Функция расчета суммы без НДС
def calculate_vat():
try:
# Считываем данные из полей
total_sum = float(en_sum.get()) # сумма покупки с НДС
vat_percent = float(en_vat.get()) # размер НДС (%)
# Вычисляем сумму без НДС
# Формула: Сумма / (1 + %/100)
net_sum = total_sum / (1 + vat_percent / 100)
res = round(net_sum, 2)
messagebox.showinfo("Результат", f"Сумма покупки без НДС = {res}")
except ValueError:
messagebox.showerror("Ошибка", "Пожалуйста, введите числовые значения")
except ZeroDivisionError:
messagebox.showerror("Ошибка", "Ставка НДС введена некорректно")
# 3. Интерфейс
window = Tk()
window.title("Калькулятор НДС")
window.geometry("500x350")
window.configure(background="pink")
# 3.2 Оформление виджетов (шрифт, цвет)
window.option_add("*Label.font", "Arial 14 normal")
window.option_add("*Label.foreground", "purple")
window.option_add("*Label.background", "white")
window.option_add("*Entry.font", "Arial 14 bold")
window.option_add("*Button.font", "Arial 14 bold")
window.option_add("*Button.background", "pink")
# 3.3 В окне — эластичный фрейм для виджетов
frame = Frame(window, padx=10, pady=10)
frame.pack(expand=True)
frame.configure(background="white")
# 3.4 Надписи для ввода данных
Label(frame, text="Сумма покупки с НДС:").grid(row=1, column=1, pady=10)
Label(frame, text="Размер НДС (%):").grid(row=2, column=1, pady=10)
# 3.5 Поля для ввода (en_sum и en_vat)
en_sum = Entry(frame)
en_sum.grid(row=1, column=2, pady=10)
en_vat = Entry(frame)
en_vat.grid(row=2, column=2, pady=10)
# 3.6 Кнопка расчета
btn = Button(frame, text="Рассчитать без НДС", command=calculate_vat)
btn.grid(row=3, column=1, columnspan=2, pady=10)
# 3.7 Отображение окна
window.mainloop()