用python GUI写一个简单计算器
时间: 2023-06-15 14:06:21 浏览: 111
好的,我们可以使用Python自带的GUI库Tkinter来实现一个简单的计算器。
首先,我们需要导入Tkinter库并创建一个主窗口:
```python
import tkinter as tk
root = tk.Tk()
root.title("简单计算器")
```
接下来,我们可以添加一个文本框用于显示计算结果:
```python
result = tk.Entry(root, width=20, font=('Arial', 16))
result.pack(side=tk.TOP, padx=10, pady=10)
```
然后,我们可以创建一个函数来处理数字和运算符的点击事件:
```python
def button_click(value):
current = result.get()
if value == 'C':
result.delete(0, tk.END)
elif value == '=':
result.delete(0, tk.END)
result.insert(tk.END, eval(current))
else:
result.insert(tk.END, value)
```
该函数接收一个参数value,表示按下的按钮的值。如果是C按钮,则清空文本框;如果是=按钮,则计算表达式并显示结果;否则,将按钮的值添加到文本框中。
接下来,我们可以创建按钮并绑定点击事件:
```python
# 创建数字按钮
for i in range(10):
btn = tk.Button(root, text=str(i), width=5, height=2,
command=lambda x=i: button_click(str(x)))
btn.grid(row=i // 3 + 1, column=i % 3)
# 创建运算符按钮
operators = ['+', '-', '*', '/', 'C', '=']
for i in range(len(operators)):
btn = tk.Button(root, text=operators[i], width=5, height=2,
command=lambda x=operators[i]: button_click(x))
btn.grid(row=i, column=3)
```
我们使用循环创建数字按钮和运算符按钮,并且使用lambda表达式来绑定点击事件。
最后,我们需要运行主循环以显示窗口:
```python
root.mainloop()
```
完整代码如下:
```python
import tkinter as tk
root = tk.Tk()
root.title("简单计算器")
result = tk.Entry(root, width=20, font=('Arial', 16))
result.pack(side=tk.TOP, padx=10, pady=10)
def button_click(value):
current = result.get()
if value == 'C':
result.delete(0, tk.END)
elif value == '=':
result.delete(0, tk.END)
result.insert(tk.END, eval(current))
else:
result.insert(tk.END, value)
for i in range(10):
btn = tk.Button(root, text=str(i), width=5, height=2,
command=lambda x=i: button_click(str(x)))
btn.grid(row=i // 3 + 1, column=i % 3)
operators = ['+', '-', '*', '/', 'C', '=']
for i in range(len(operators)):
btn = tk.Button(root, text=operators[i], width=5, height=2,
command=lambda x=operators[i]: button_click(x))
btn.grid(row=i, column=3)
root.mainloop()
```
阅读全文