用tkinter实现一个简单计算器,可以加减乘除,支持小数点,多次运算,由label和button构成,用grid布局
时间: 2024-03-22 18:37:43 浏览: 69
好的,以下是一个简单的计算器的实现代码:
```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.label = tk.Label(master, textvariable=self.result, font=('Arial', 20), width=15, height=2, anchor='e')
self.label.grid(row=0, column=0, columnspan=4)
self.create_button('7', 1, 0)
self.create_button('8', 1, 1)
self.create_button('9', 1, 2)
self.create_button('/', 1, 3)
self.create_button('4', 2, 0)
self.create_button('5', 2, 1)
self.create_button('6', 2, 2)
self.create_button('*', 2, 3)
self.create_button('1', 3, 0)
self.create_button('2', 3, 1)
self.create_button('3', 3, 2)
self.create_button('-', 3, 3)
self.create_button('0', 4, 0)
self.create_button('.', 4, 1)
self.create_button('C', 4, 2)
self.create_button('+', 4, 3)
self.create_button('=', 5, 0, columnspan=4)
def create_button(self, text, row, col, rowspan=1, columnspan=1):
button = tk.Button(self.master, text=text, font=('Arial', 15), width=5, height=2, command=lambda: self.button_click(text))
button.grid(row=row, column=col, rowspan=rowspan, columnspan=columnspan)
def button_click(self, text):
if text == 'C':
self.result.set('0')
elif text == '=':
try:
result = eval(self.result.get())
self.result.set(str(result))
except:
self.result.set('错误')
else:
if self.result.get() == '0' or self.result.get() == '错误':
self.result.set(text)
else:
self.result.set(self.result.get() + text)
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
这个代码使用了tkinter库来创建GUI界面。在主程序中创建了一个Calculator类,在初始化方法中创建了一个label来显示计算结果,并使用create_button方法创建了所有的button。button的点击事件使用了button_click方法来处理,实现了加减乘除和小数点的功能。
运行代码后,会弹出一个计算器的GUI界面,可以使用鼠标点击button来输入数字和运算符,计算结果会在label中实时显示。
阅读全文