import tkinter as tk
from tkinter import messagebox

# ====== 温度转换逻辑 ======
def convert_temperature():
    try:
        value = float(entry_value.get())
        unit = unit_var.get()
        result = ""

        if unit == "Celsius":
            c = value
            f = c * 9 / 5 + 32
            k = c + 273.15
            result = f"{c:.2f} ℃\n= {f:.2f} ℉\n= {k:.2f} K"

        elif unit == "Fahrenheit":
            f = value
            c = (f - 32) * 5 / 9
            k = c + 273.15
            result = f"{f:.2f} ℉\n= {c:.2f} ℃\n= {k:.2f} K"

        elif unit == "Kelvin":
            k = value
            c = k - 273.15
            f = c * 9 / 5 + 32
            result = f"{k:.2f} K\n= {c:.2f} ℃\n= {f:.2f} ℉"

        label_result.config(text=result)

    except ValueError:
        messagebox.showerror("输入错误", "请输入正确的数字哦 🥺")

# ====== 创建窗口 ======
root = tk.Tk()
root.title("🌡️ 卡通温度转换器")
root.geometry("400x420")
root.resizable(False, False)

# 卡通背景色
root.configure(bg="#FFF3E0")

# ====== 标题 ======
label_title = tk.Label(
    root,
    text="🌈 温度单位转换器 🌡️",
    font=("Comic Sans MS", 20, "bold"),
    bg="#FFF3E0",
    fg="#FF7043"
)
label_title.pack(pady=15)

# ====== 输入区域 ======
frame_input = tk.Frame(root, bg="#FFF3E0")
frame_input.pack(pady=10)

label_prompt = tk.Label(
    frame_input,
    text="请输入温度值：",
    font=("Comic Sans MS", 13),
    bg="#FFF3E0"
)
label_prompt.pack(anchor="w")

entry_value = tk.Entry(
    frame_input,
    font=("Comic Sans MS", 16),
    width=20,
    justify="center",
    relief="solid",
    bd=2
)
entry_value.pack(pady=5)

# ====== 单位选择 ======
unit_var = tk.StringVar(value="Celsius")

frame_unit = tk.Frame(root, bg="#FFF3E0")
frame_unit.pack(pady=10)

tk.Radiobutton(
    frame_unit, text="摄氏度 ℃",
    variable=unit_var, value="Celsius",
    font=("Comic Sans MS", 12),
    bg="#FFF3E0", fg="#5D4037"
).pack(side="left", padx=10)

tk.Radiobutton(
    frame_unit, text="华氏度 ℉",
    variable=unit_var, value="Fahrenheit",
    font=("Comic Sans MS", 12),
    bg="#FFF3E0", fg="#5D4037"
).pack(side="left", padx=10)

tk.Radiobutton(
    frame_unit, text="开尔文 K",
    variable=unit_var, value="Kelvin",
    font=("Comic Sans MS", 12),
    bg="#FFF3E0", fg="#5D4037"
).pack(side="left", padx=10)

# ====== 转换按钮 ======
button_convert = tk.Button(
    root,
    text="✨ 开始转换 ✨",
    font=("Comic Sans MS", 14, "bold"),
    bg="#FF8A65",
    fg="white",
    activebackground="#FF7043",
    relief="flat",
    padx=20, pady=5,
    command=convert_temperature
)
button_convert.pack(pady=15)

# ====== 结果展示 ======
label_result = tk.Label(
    root,
    text="",
    font=("Comic Sans MS", 14),
    bg="#FFF3E0",
    fg="#4E342E",
    justify="center"
)
label_result.pack(pady=10)

# ====== 底部提示 ======
label_footer = tk.Label(
    root,
    text="☁️ 支持 ℃ / ℉ / K 互相转换",
    font=("Comic Sans MS", 10),
    bg="#FFF3E0",
    fg="#A1887F"
)
label_footer.pack(side="bottom", pady=10)

# ====== 运行主循环 ======
root.mainloop()