帮我做一份PYTHON采用面向对象的思想设计复杂计算器界面
时间: 2023-09-10 16:09:04 浏览: 90
好的,下面是一个简单的示例代码,演示了如何使用Python的面向对象编程来设计一个计算器界面。这个计算器界面有加、减、乘、除和求余五个操作,可以输入两个数字进行计算。
```python
import tkinter as tk
class Calculator:
def __init__(self):
self.num1 = 0
self.num2 = 0
self.operator = ""
self.root = tk.Tk()
self.root.title("Calculator")
self.root.geometry("300x200")
self.num1_entry = tk.Entry(self.root)
self.num1_entry.grid(row=0, column=0)
self.num2_entry = tk.Entry(self.root)
self.num2_entry.grid(row=1, column=0)
self.add_button = tk.Button(self.root, text="+", command=self.add)
self.add_button.grid(row=0, column=1)
self.sub_button = tk.Button(self.root, text="-", command=self.sub)
self.sub_button.grid(row=1, column=1)
self.mul_button = tk.Button(self.root, text="*", command=self.mul)
self.mul_button.grid(row=2, column=1)
self.div_button = tk.Button(self.root, text="/", command=self.div)
self.div_button.grid(row=3, column=1)
self.mod_button = tk.Button(self.root, text="%", command=self.mod)
self.mod_button.grid(row=4, column=1)
self.result_label = tk.Label(self.root, text="")
self.result_label.grid(row=2, column=0)
self.root.mainloop()
def get_nums(self):
self.num1 = float(self.num1_entry.get())
self.num2 = float(self.num2_entry.get())
def add(self):
self.get_nums()
result = self.num1 + self.num2
self.result_label.config(text=str(result))
def sub(self):
self.get_nums()
result = self.num1 - self.num2
self.result_label.config(text=str(result))
def mul(self):
self.get_nums()
result = self.num1 * self.num2
self.result_label.config(text=str(result))
def div(self):
self.get_nums()
result = self.num1 / self.num2
self.result_label.config(text=str(result))
def mod(self):
self.get_nums()
result = self.num1 % self.num2
self.result_label.config(text=str(result))
if __name__ == "__main__":
calculator = Calculator()
```
在这个示例代码中,我们定义了一个名为`Calculator`的类,它包含了计算器的各种功能。在`__init__`方法中,我们创建了一个Tkinter窗口,并在窗口中添加了两个文本框、五个按钮和一个标签,用于显示计算结果。
在每个操作按钮的回调函数中,我们通过`get_nums`方法获取文本框中的两个数字,并根据不同的操作符进行计算。最后,我们将计算结果显示在标签中。
这只是一个简单的示例,你可以根据自己的需求扩展和修改代码,构建一个更复杂的计算器界面。
阅读全文