import tkinter as tk
from tkinter import ttk

def button_click(item):
    display.insert(tk.END, item)

def calculate():
    try:
        result = eval(display.get())
        display.delete(0, tk.END)
        display.insert(0, str(result))
    except Exception:
        display.delete(0, tk.END)
        display.insert(0, "错误")

def clear_all():
    display.delete(0, tk.END)


# 创建窗口
win = tk.Tk()
win.title("计算器")
win.geometry("320x400")

# 输入显示框
display = ttk.Entry(win, font=('Arial', 24), justify='right')
display.pack(pady=10, fill=tk.BOTH, padx=10)

# 按钮布局
buttons = [
    ['7', '8', '9', '/'],
    ['4', '5', '6', '*'],
    ['1', '2', '3', '-'],
    ['0', '.', '=', '+']
]

for row in buttons:
    frame = ttk.Frame(win)
    frame.pack(fill=tk.BOTH, expand=True)
    for text in row:
        if text == "=":
            btn = ttk.Button(frame, text=text, command=calculate)
        else:
            btn = ttk.Button(frame, text=text, command=lambda t=text: button_click(t))
        btn.pack(side=tk.LEFT, fill=tk.BOTH, expand=True, padx=2, pady=2)

# 清除按钮
clear_btn = ttk.Button(win, text="C", command=clear_all)
clear_btn.pack(fill=tk.BOTH, expand=True, padx=10, pady=5)

win.mainloop()
