import tkinter as tk
from tkinter import ttk

# 汇率 以人民币为基准
RATE = {
    "人民币": 1.0,
    "美元": 0.138,
    "欧元": 0.127,
    "英镑": 0.109,
    "日元": 20.8
}

def convert():
    try:
        # 获取输入金额
        money = float(entry_money.get())
        # 获取选中币种
        from_cur = combo_from.get()
        to_cur = combo_to.get()
        # 换算公式
        rmb = money / RATE[from_cur]
        res = rmb * RATE[to_cur]
        # 保留2位小数
        label_result.config(text=f"换算结果：{res:.2f} {to_cur}")
    except ValueError:
        label_result.config(text="请输入合法数字！")

# 创建主窗口
root = tk.Tk()
root.title("货币单位转换器")
root.geometry("450x280")
root.resizable(False, False)

# 标题
title = ttk.Label(root, text="🌍 货币转换器", font=("微软雅黑", 20, "bold"))
title.pack(pady=15)

# 输入框架
frame1 = ttk.Frame(root)
frame1.pack(pady=8)

ttk.Label(frame1, text="输入金额：", font=("微软雅黑", 12)).grid(row=0, column=0, padx=5)
entry_money = ttk.Entry(frame1, width=20, font=("微软雅黑", 12))
entry_money.grid(row=0, column=1, padx=5)

# 币种选择框架
frame2 = ttk.Frame(root)
frame2.pack(pady=8)

cur_list = list(RATE.keys())

ttk.Label(frame2, text="从", font=("微软雅黑", 12)).grid(row=0, column=0, padx=3)
combo_from = ttk.Combobox(frame2, values=cur_list, width=10, font=("微软雅黑", 11))
combo_from.set("人民币")
combo_from.grid(row=0, column=1, padx=5)

ttk.Label(frame2, text="转换为", font=("微软雅黑", 12)).grid(row=0, column=2, padx=3)
combo_to = ttk.Combobox(frame2, values=cur_list, width=10, font=("微软雅黑", 11))
combo_to.set("美元")
combo_to.grid(row=0, column=3, padx=5)

# 转换按钮
btn_convert = ttk.Button(root, text="立即转换", command=convert)
btn_convert.pack(pady=12)

# 结果显示
label_result = ttk.Label(root, text="换算结果：", font=("微软雅黑", 14), foreground="#0066cc")
label_result.pack()

root.mainloop()