import tkinter as tk
from tkinter import ttk

# 主窗口
root = tk.Tk()
root.title("单位转换器｜温度·长度·重量·货币")
root.geometry("500x400")
root.resizable(False, False)
root.configure(bg="#f5f7fa")

# 清空所有输入和结果
def clear_all():
    entry.delete(0, tk.END)
    res_label.config(text="")

# ========== 四个转换功能 ==========
def change_temp():
    try:
        val = float(entry.get())
        c2f = val * 9/5 + 32
        f2c = (val - 32) * 5/9
        res_label.config(text=f"摄氏{val}°C = {c2f:.2f}°F\n华氏{val}°F = {f2c:.2f}°C", fg="#0066cc")
    except:
        res_label.config(text="❌ 请输入有效数字", fg="red")

def change_len():
    try:
        m = float(entry.get())
        txt = f"米:{m} | 厘米:{m*100:.2f} | 千米:{m/1000:.4f}\n英寸:{m*39.3701:.2f} | 英尺:{m*3.28084:.2f}"
        res_label.config(text=txt, fg="#009933")
    except:
        res_label.config(text="❌ 请输入有效数字", fg="red")

def change_weight():
    try:
        kg = float(entry.get())
        txt = f"千克:{kg} | 克:{kg*1000:.2f} | 斤:{kg*2:.2f}\n磅:{kg*2.20462:.2f}"
        res_label.config(text=txt, fg="#cc0000")
    except:
        res_label.config(text="❌ 请输入有效数字", fg="red")

def change_money():
    try:
        rmb = float(entry.get())
        usd = rmb * 0.14
        eur = rmb * 0.13
        jpy = rmb * 21.5
        txt = f"人民币:{rmb:.2f}\n美元:{usd:.2f} | 欧元:{eur:.2f} | 日元:{jpy:.2f}"
        res_label.config(text=txt, fg="#b45309")
    except:
        res_label.config(text="❌ 请输入有效数字", fg="red")

# ========== 界面布局 ==========
# 标题
tk.Label(root, text="全能单位转换器", font=("微软雅黑", 22, "bold"), bg="#f5f7fa", fg="#2d3748").pack(pady=20)

# 输入框
entry = ttk.Entry(root, font=("微软雅黑", 16), width=30)
entry.pack(pady=5)

# 功能按钮区
frame1 = tk.Frame(root, bg="#f5f7fa")
frame1.pack(pady=20)

ttk.Button(frame1, text="🌡️ 温度转换", command=change_temp).grid(row=0, column=0, padx=6, pady=4)
ttk.Button(frame1, text="📏 长度转换", command=change_len).grid(row=0, column=1, padx=6, pady=4)
ttk.Button(frame1, text="⚖️ 重量转换", command=change_weight).grid(row=1, column=0, padx=6, pady=4)
ttk.Button(frame1, text="💰 货币转换", command=change_money).grid(row=1, column=1, padx=6, pady=4)

# 清空按钮
ttk.Button(root, text="🧹 清空输入", command=clear_all).pack(pady=5)

# 结果显示
res_label = tk.Label(root, text="", font=("微软雅黑", 14), bg="#f5f7fa")
res_label.pack(pady=20)

root.mainloop()