import tkinter as tk
from tkinter import ttk, messagebox

# 汇率（固定简化版，实时汇率可自行修改）
EXCHANGE_RATES = {
    "人民币": 1.0,
    "美元": 0.138,
    "欧元": 0.128,
    "日元": 21.5,
    "英镑": 0.111
}


def convert_currency():
    try:
        # 获取输入
        amount = float(entry_amount.get())
        from_curr = combo_from.get()
        to_curr = combo_to.get()

        # 换算
        rmb = amount / EXCHANGE_RATES[from_curr]
        result = rmb * EXCHANGE_RATES[to_curr]

        # 显示结果
        label_result.config(text=f"结果：{result:.2f} {to_curr}")

    except ValueError:
        messagebox.showerror("错误", "请输入有效数字！")


def clear_all():
    entry_amount.delete(0, tk.END)
    label_result.config(text="结果：")


# ================== 主界面 ==================
root = tk.Tk()
root.title("货币单位转换器")
root.geometry("450x300")
root.resizable(False, False)

# 标题
label_title = tk.Label(root, text="货币转换器", font=("微软雅黑", 18, "bold"))
label_title.pack(pady=10)

# 输入金额
frame_input = tk.Frame(root)
frame_input.pack(pady=5)

tk.Label(frame_input, text="输入金额：", font=("微软雅黑", 12)).grid(row=0, column=0)
entry_amount = tk.Entry(frame_input, font=("微软雅黑", 12), width=15)
entry_amount.grid(row=0, column=1, padx=5)

# 货币选择
frame_currency = tk.Frame(root)
frame_currency.pack(pady=8)

currency_list = list(EXCHANGE_RATES.keys())

tk.Label(frame_currency, text="从：", font=("微软雅黑", 12)).grid(row=0, column=0)
combo_from = ttk.Combobox(
    frame_currency, values=currency_list, font=("微软雅黑", 11), width=8)
combo_from.current(0)
combo_from.grid(row=0, column=1, padx=5)

tk.Label(frame_currency, text="  转成：", font=("微软雅黑", 12)).grid(row=0, column=2)
combo_to = ttk.Combobox(
    frame_currency, values=currency_list, font=("微软雅黑", 11), width=8)
combo_to.current(1)
combo_to.grid(row=0, column=3, padx=5)

# 按钮
frame_btn = tk.Frame(root)
frame_btn.pack(pady=10)

btn_convert = tk.Button(frame_btn, text="开始转换", font=(
    "微软雅黑", 12), bg="#4285F4", fg="white", command=convert_currency)
btn_convert.grid(row=0, column=0, padx=10)

btn_clear = tk.Button(frame_btn, text="清空", font=(
    "微软雅黑", 12), command=clear_all)
btn_clear.grid(row=0, column=1, padx=10)

# 结果
label_result = tk.Label(root, text="结果：", font=(
    "微软雅黑", 14, "bold"), fg="green")
label_result.pack(pady=10)

# 运行
root.mainloop()
