import tkinter as tk
from tkinter import messagebox

class TempConverterApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Python 温度单位转换器")
        self.root.geometry("400x300")
        self.root.resizable(False, False)

        # 1. 顶部标题
        tk.Label(root, text="🌡️ 温度单位转换器", font=("Arial", 18, "bold")).pack(pady=20)

        # 2. 输入区
        input_frame = tk.Frame(root)
        input_frame.pack(pady=10)
        
        tk.Label(input_frame, text="输入温度值:", font=("Arial", 12)).pack(side="left")
        self.temp_entry = tk.Entry(input_frame, font=("Arial", 14), width=10, justify="center")
        self.temp_entry.pack(side="left", padx=10)
        
        # 绑定回车键，方便快速转换
        self.root.bind("<Return>", lambda event: self.convert_temp())

        # 3. 转换按钮
        tk.Button(root, text="🔄 开始转换", font=("Arial", 12), command=self.convert_temp).pack(pady=10)

        # 4. 结果展示区
        self.result_label = tk.Label(root, text="", font=("Arial", 14), fg="#333333")
        self.result_label.pack(pady=20)

    def convert_temp(self):
        """处理温度转换逻辑"""
        user_input = self.temp_entry.get().strip()
        
        # 1. 输入验证
        if not user_input:
            self.result_label.config(text="⚠️ 请先输入温度值！", fg="orange")
            return
            
        try:
            temp = float(user_input)
        except ValueError:
            self.result_label.config(text="❌ 请输入有效的数字！", fg="red")
            return

        # 2. 计算三种温度单位
        # 摄氏度 -> 华氏度: F = C * 9/5 + 32
        celsius = temp
        fahrenheit = round(temp * 9/5 + 32, 2)
        
        # 摄氏度 -> 开尔文: K = C + 273.15
        kelvin = round(temp + 273.15, 2)

        # 3. 更新界面显示
        result_text = (
            f"🌡️ 摄氏度 (°C): {celsius}\n"
            f"🔥 华氏度 (°F): {fahrenheit}\n"
            f"🧊 开尔文 (K): {kelvin}"
        )
        self.result_label.config(text=result_text, fg="green")

if __name__ == "__main__":
    root = tk.Tk()
    app = TempConverterApp(root)
    root.mainloop()