import tkinter as tk
from tkinter import ttk

# 以千克为基准换算
weight_dict = {
    "吨": 0.001,
    "千克": 1,
    "克": 1000,
    "斤": 2,
    "两": 20,
    "磅": 2.20462
}

def convert_weight():
    try:
        num = float(entry_num.get())
        unit1 = combo1.get()
        unit2 = combo2.get()
        # 先转千克再换算
        kg = num / weight_dict[unit1]
        result = kg * weight_dict[unit2]
        lab_result.config(text=f"结果：{result:.3f} {unit2}")
    except:
        lab_result.config(text="请输入正确数字！")

# 创建窗口
root = tk.Tk()
root.title("重量单位转换器")
root.geometry("400x210")
root.resizable(False, False)

# 输入
tk.Label(root, text="输入数值：", font=("黑体", 12)).place(x=30, y=30)
entry_num = tk.Entry(root, font=("黑体", 12), width=16)
entry_num.place(x=110, y=30)

# 原单位
tk.Label(root, text="原单位：", font=("黑体", 12)).place(x=30, y=80)
combo1 = ttk.Combobox(root, values=list(weight_dict.keys()), font=("黑体",11), width=10)
combo1.current(1)
combo1.place(x=110, y=80)

# 目标单位
tk.Label(root, text="转换为：", font=("黑体", 12)).place(x=220, y=80)
combo2 = ttk.Combobox(root, values=list(weight_dict.keys()), font=("黑体",11), width=10)
combo2.current(2)
combo2.place(x=290, y=80)

# 转换按钮
tk.Button(root, text="立即转换", command=convert_weight,
          font=("黑体",12), bg="#ff6666", fg="white").place(x=140, y=125)

# 结果
lab_result = tk.Label(root, text="等待计算", font=("黑体",13), fg="#0066cc")
lab_result.place(x=100, y=170)

root.mainloop()