import tkinter as tk
from tkinter import ttk

# 固定汇率（可自行修改）
exchange_rates = {
    "人民币(CNY)": 1.0,
    "美元(USD)": 7.20,
    "欧元(EUR)": 7.75,
    "日元(JPY)": 0.047,
    "英镑(GBP)": 9.10
}

def convert():
    try:
        # 获取输入内容
        amount = float(entry_amount.get())
        from_cur = combo_from.get()
        to_cur = combo_to.get()
        
        # 换算公式
        result = amount * exchange_rates[from_cur] / exchange_rates[to_cur]
        # 显示结果保留2位小数
        label_result.config(text=f"转换结果：{result:.2f} {to_cur.split('(')[0]}")
    except ValueError:
        label_result.config(text="请输入正确的数字金额！")

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

# 标题
title_label = tk.Label(root, text="可视化货币转换器", font=("黑体", 18, "bold"))
title_label.pack(pady=15)

# 金额输入区域
frame1 = tk.Frame(root)
frame1.pack(pady=8)
tk.Label(frame1, text="输入金额：", font=("宋体", 12)).grid(row=0, column=0, padx=5)
entry_amount = tk.Entry(frame1, width=25, font=("宋体", 12))
entry_amount.grid(row=0, column=1)

# 原货币选择
frame2 = tk.Frame(root)
frame2.pack(pady=8)
tk.Label(frame2, text="原始货币：", font=("宋体", 12)).grid(row=0, column=0, padx=5)
combo_from = ttk.Combobox(frame2, values=list(exchange_rates.keys()), width=22, font=("宋体", 12))
combo_from.current(0)
combo_from.grid(row=0, column=1)

# 目标货币选择
frame3 = tk.Frame(root)
frame3.pack(pady=8)
tk.Label(frame3, text="目标货币：", font=("宋体", 12)).grid(row=0, column=0, padx=5)
combo_to = ttk.Combobox(frame3, values=list(exchange_rates.keys()), width=22, font=("宋体", 12))
combo_to.current(1)
combo_to.grid(row=0, column=1)

# 转换按钮
btn_convert = tk.Button(root, text="立即转换", command=convert, 
                        font=("黑体", 13), bg="#2196F3", fg="white", padx=20)
btn_convert.pack(pady=12)

# 结果显示
label_result = tk.Label(root, text="转换结果：", font=("黑体", 14), fg="#E53935")
label_result.pack()

# 主循环
root.mainloop()