import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
def convert():
direction = combo_direction.get()
input_value = entry_temp.get().strip()
def calculate(val, mode):
if mode == "Цельсий -> Фаренгейт":
return val * 9 / 5 + 32
elif mode == "Фаренгейт -> Цельсий":
return (val - 32) * 5 / 9
try:
if not input_value:
raise ValueError("Поле ввода пустое.")
temp_float = float(input_value.replace(",", "."))
result = calculate(temp_float, direction)
label_result.config(text=f"Результат: {round(result, 1)}")
except ValueError:
messagebox.showerror("Ошибка ввода", "Пожалуйста, введите корректное число (буквы и спецсимволы недопустимы).")
root = tk.Tk()
root.title("Конвертер температур")
root.geometry("400x250")
combo_direction = ttk.Combobox(root, values=["Цельсий -> Фаренгейт", "Фаренгейт -> Цельсий"], font=("Arial", 10), state="readonly")
combo_direction.current(0)
combo_direction.pack(pady=10)
entry_temp = tk.Entry(root, font=("Arial", 12), width=15)
entry_temp.pack(pady=5)
btn_convert = tk.Button(root, text="Перевести", font=("Arial", 10), command=convert)
btn_convert.pack(pady=10)
label_result = tk.Label(root, text="Результат: ", font=("Arial", 12, "bold"))
label_result.pack(pady=15)
root.mainloop()