使用tkinter制作一个简单的计算器,能完成浮点数的加减乘除计算。(一个浮点数不能包含两个小数点)
时间: 2024-06-09 21:07:27 浏览: 80
好的,以下是一个简单的基于tkinter的计算器实现:
```python
import tkinter as tk
# 计算器类
class Calculator:
def __init__(self, master):
self.master = master
master.title("计算器")
# 显示结果的文本框
self.result = tk.StringVar()
self.result.set("0")
self.result_entry = tk.Entry(master, textvariable=self.result, font=("Arial", 20), width=15, bd=5, justify='right')
self.result_entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
# 操作按钮
self.button_list = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+',
]
self.buttons = []
for i in range(len(self.button_list)):
self.buttons.append(tk.Button(master, text=self.button_list[i], font=("Arial", 20), width=5, height=2, bd=5, command=lambda x=self.button_list[i]: self.button_clicked(x)))
row = i // 4 + 1
col = i % 4
self.buttons[i].grid(row=row, column=col, padx=5, pady=5)
# 按钮点击事件
def button_clicked(self, button_text):
if button_text == 'C':
self.result.set("0")
elif button_text == '=':
try:
self.result.set(eval(self.result.get()))
except:
self.result.set("Error")
elif button_text == '.':
if '.' in self.result.get():
return
else:
self.result.set(self.result.get() + '.')
else:
if self.result.get() == '0':
self.result.set(button_text)
else:
self.result.set(self.result.get() + button_text)
# 主函数
if __name__ == '__main__':
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
运行代码后可以看到一个简单的计算器界面,可以进行加减乘除的浮点数计算。
![calculator](https://img-blog.csdnimg.cn/20210817164139157.png)
阅读全文