|
发表于 2025-3-31 20:08:20
|
显示全部楼层
简易计算器代码修复与补全
鱼油你好!你提供的简易计算器代码中,按钮布局部分 buttons = 后面缺失了具体的按钮内容,导致程序无法运行。下面是补全并修复后的完整代码:
- import tkinter as tk
- from tkinter import messagebox
- class SimpleCalculator:
- def __init__(self, master):
- self.master = master
- self.master.title("简易计算器")
- self.master.geometry("300x400")
- # 显示结果的文本框
- self.result_text = tk.StringVar()
- self.result_entry = tk.Entry(self.master, textvariable=self.result_text, font=("Arial", 20), bd=10, justify="right")
- self.result_entry.pack(fill=tk.X, pady=10)
- # 数字和运算符按钮
- buttons = [
- ['7', '8', '9', '/'],
- ['4', '5', '6', '*'],
- ['1', '2', '3', '-'],
- ['0', '.', '=', '+']
- ]
- for row in buttons:
- frame = tk.Frame(self.master)
- frame.pack(fill=tk.X)
- for button_text in row:
- button = tk.Button(frame, text=button_text, font=("Arial", 16), command=lambda txt=button_text: self.button_click(txt))
- button.pack(side=tk.LEFT, padx=5, pady=5, fill=tk.X, expand=True)
- # 清空按钮
- self.clear_button = tk.Button(self.master, text="C", font=("Arial", 16), command=self.clear)
- self.clear_button.pack(side=tk.LEFT, padx=5, pady=5, fill=tk.X, expand=True)
- def button_click(self, text):
- if text == '=':
- try:
- result = eval(self.result_text.get())
- self.result_text.set(str(result))
- except Exception as e:
- messagebox.showerror("错误", "计算错误!")
- self.clear()
- else:
- current_text = self.result_text.get()
- self.result_text.set(current_text + text)
- def clear(self):
- self.result_text.set("")
- if __name__ == "__main__":
- root = tk.Tk()
- app = SimpleCalculator(root)
- root.mainloop()
复制代码
说明
- 补全了 buttons 的内容,添加了数字和运算符按钮。
- 移除了多余的 if text == 'C' 判断,因为清空功能已经由单独的按钮实现。
- 程序现在可以正常运行,支持基本的加减乘除和小数点输入。
如有其他功能需求(如键盘输入支持、括号运算等),欢迎继续提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|