编程怎么写计算器小软件

时间:2025-01-25 06:18:59 游戏攻略

步骤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模块。

创建计算器类