Python使用tkinter实现计算器界面
时间: 2023-07-11 14:09:09 浏览: 261
python实现计算器功能
好的,以下是使用tkinter实现计算器界面的Python代码:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
# 创建显示屏
self.screen = tk.Entry(master, width=25, font=('Arial', 16))
self.screen.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# 创建按钮
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, column, columnspan=1):
button = tk.Button(self.master, text=text, width=5, height=2, font=('Arial', 16), command=lambda: self.button_click(text))
button.grid(row=row, column=column, columnspan=columnspan, padx=5, pady=5)
def button_click(self, text):
if text == "=":
try:
result = eval(self.screen.get())
self.screen.delete(0, tk.END)
self.screen.insert(0, str(result))
except:
self.screen.delete(0, tk.END)
self.screen.insert(0, "Error")
elif text == "C":
self.screen.delete(0, tk.END)
else:
self.screen.insert(tk.END, text)
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
以上代码创建了一个名为Calculator的类,其中包含了创建显示屏和按钮的方法。在button_click方法中,我们使用eval函数计算表达式的结果,并将结果显示在显示屏上。如果表达式无法计算,我们将显示“Error”消息。
我们在主函数中创建一个Tkinter窗口并实例化Calculator类。最后,我们通过调用主循环方法让程序进入事件循环,开始监听并响应用户输入。
阅读全文