步骤1:导入必要的库
首先,你需要导入Python的tkinter库,这是创建图形用户界面的标准库。
```python
import tkinter as tk
from tkinter import messagebox
```
步骤2:创建计算器类
定义一个Calculator类,该类将包含计算器的主要功能和逻辑。
```python
class Calculator:
def __init__(self, root):
self.root = root
self.root.title("计算器")
self.root.geometry("400x600")
self.current_input = "" 当前输入的数字和运算符
self.result_label = tk.Label(root, text="", height=2, anchor="e", font=("Arial", 24))
数字按钮
self.number_buttons = [str(i) for i in range(10)]
self.operator_buttons = ['+', '-', '*', '/']
布局
self.create_layout()
def create_layout(self):
输入框
self.entry = tk.Entry(self.root, font=("Arial", 20), borderwidth=5, relief="ridge")
self.entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
self.entry.insert(0, "0")
按钮
row = 1
for number in self.number_buttons:
button = tk.Button(self.root, text=number, font=("Arial", 16), width=5, height=2, command=lambda n=number: self.on_button_click(n))
button.grid(row=row, column=0, padx=5, pady=5)
row += 1
for operator in self.operator_buttons:
button = tk.Button(self.root, text=operator, font=("Arial", 16), width=5, height=2, command=lambda o=operator: self.on_button_click(o))
button.grid(row=row, column=1, padx=5, pady=5)
row += 1
等于按钮
eq_button = tk.Button(self.root, text="=", font=("Arial", 16), width=5, height=2, command=self.calculate)
eq_button.grid(row=row, column=2, padx=5, pady=5)
row += 1
清除按钮
clear_button = tk.Button(self.root, text="C", font=("Arial", 16), width=5, height=2, command=self.clear)
clear_button.grid(row=row, column=3, padx=5, pady=5)
结果显示
self.result_label.grid(row=row+1, column=0, columnspan=4, pady=10)
def on_button_click(self, text):
if text == "=":
try:
result = str(eval(self.entry.get()))
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, result)
except Exception as e:
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, "Error")
elif text == "C":
self.entry.delete(0, tk.END)
else:
self.entry.insert(tk.END, text)
def calculate(self):
try:
result = eval(self.entry.get())
self.result_label.config(text=str(result))
except Exception as e:
self.result_label.config(text="Error")
def clear(self):
self.entry.delete(0, tk.END)
self.result_label.config(text="")
```
步骤3:运行计算器
创建一个Tkinter窗口并启动计算器程序。
```python
if __name__ == "__main__":
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
代码解析
导入库:
导入tkinter库和messagebox模块。
创建计算器类