图形编程做计算器怎么做

时间:2025-01-28 16:07:01 网络游戏

导入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`函数计算表达式的结果,并处理可能的错误输入。

你可以根据需要进一步扩展和美化这个计算器,例如添加更多的功能按钮或改进用户界面。