import tkinter as tk
class Calculator:
def __init__(self, root):
self.root = root
self.("计算器")
self.("300x400")
self.display = (root, font=("Helvetica", 16), borderwidth=2, relief="solid")
self.display.grid(row=0, column=0, columnspan=4, padx=10, pady=10, sticky="nsew")
self.create_buttons()
def create_buttons(self):
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+',
'C'
]
row = 1
col = 0
for button in buttons:
if button == "=":
btn = (self.root, text=button, font=("Helvetica", 14), command=self.calculate_result)
(row=row, column=col, columnspan=2, sticky="nsew")
col += 1
elif button == "C":
btn = (self.root, text=button, font=("Helvetica", 14), command=self.clear_display)
(row=row, column=col, sticky="nsew")
else:
btn = (self.root, text=button, font=("Helvetica", 14), command=lambda b=button: self.button_clicked(b))
(row=row, column=col, sticky="nsew")
col += 1
if col > 3:
col = 0
row += 1
for i in range(5):
self.root.grid_rowconfigure(i, weight=1)
self.root.grid_columnconfigure(i, weight=1)
def button_clicked(self, button):
current_text = self.display.get()
new_text = current_text + button
self.display.delete(0, tk.END)
self.display.insert(0, new_text)
def calculate_result(self):
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(0, str(result))
except Exception as e:
self.display.delete(0, tk.END)
self.display.insert(0, "错误")
def clear_display(self):
self.display.delete(0, tk.END)
if __name__ == "__main__":
root = ()
calc = Calculator(root)
()