导入tkinter库
```python
import tkinter as tk
```
创建计算器类
```python
class Calculator(tk.Frame):
def __init__(self, parent=None):
tk.Frame.__init__(self, parent)
self.pack()
self.startOfNextOperand = True 开始输入下一个操作数
self.expr = tk.StringVar() 显示运算表达式
self.expr.set('')
self.exprLabel = tk.Label(self, font=('Helvetica', 10), fg='828282', width=32, anchor='e', textvariable=self.expr)
self.exprLabel.grid(row=0, column=0, columnspan=4)
self.result = tk.StringVar() 显示结果
self.result.set(0)
self.resultLabel = tk.Label(self, font=('Helvetica', 20), width=16, anchor='e', textvariable=self.result)
self.resultLabel.grid(row=1, column=0, columnspan=4)
创建按钮
buttons = [
['CE', 'C'],
['7', '8', '9'],
['4', '5', '6'],
['1', '2', '3'],
['+', '-', '*', '/'],
['=', '0', '.']
]
for row in range(len(buttons)):
for col in range(len(buttons[row])):
button = tk.Button(self, text=buttons[row][col], font=('Helvetica', 12), width=5, height=2, command=lambda b=buttons[row][col]: self.on_button_click(b))
button.grid(row=row+1, column=col)
def on_button_click(self, button_text):
if button_text == 'CE':
self.expr.set('')
self.result.set(0)
elif button_text == 'C':
self.expr.set('')
self.result.set(0)
elif button_text == '=':
try:
self.result.set(eval(self.expr.get()))
except Exception as e:
self.result.set('Error')
else:
if self.startOfNextOperand:
self.expr.set(button_text)
self.startOfNextOperand = False
else:
self.expr.set(self.expr.get() + button_text)
```
创建主窗口并运行计算器
```python
root = tk.Tk()
root.title("简易图形计算器")
root.geometry("300x400") 设置窗口大小
calculator = Calculator(root)
root.mainloop()
```
这个代码创建了一个简易的图形界面计算器,具有以下功能:
显示输入的运算表达式和计算结果。
提供数字按钮、操作符按钮和CE/C按钮。
使用`eval`函数计算表达式的结果,并处理可能的错误输入。
你可以根据需要进一步扩展和美化这个计算器,例如添加更多的功能按钮或改进用户界面。