编写一个简单的计算器,具有图形用户界面,能实现常用的算术计算功能。 (一)系统功能需求 系统功能需求具体如下: (1)具有图形用户界面。 (2)能实现加、减、乘、除基本运算和清零功能。 (3)计算器每次启动时按键的位置随机变换。 (4)计算器至少有“查看”、“帮助”两个菜单,可扩展计算器的其他功能。
时间: 2024-03-03 22:47:49 浏览: 79
好的,我可以为您提供一个Python的GUI计算器程序,实现加、减、乘、除基本运算和清零功能。
以下是代码示例:
```python
import random
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
self.master.title("计算器")
self.master.resizable(False, False)
self.create_widgets()
self.button_position = []
self.change_button_position()
def create_widgets(self):
# 显示区域
self.display = tk.Entry(self.master, width=25, font=('Arial', 14))
self.display.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# 数字键
for i in range(10):
row = 3 - (i // 3)
col = i % 3
self.create_button(str(i), row, col)
# 操作键
self.create_button('+', 1, 3)
self.create_button('-', 2, 3)
self.create_button('*', 3, 3)
self.create_button('/', 4, 3)
self.create_button('=', 4, 2)
self.create_button('C', 4, 0)
# 菜单
menubar = tk.Menu(self.master)
self.master.config(menu=menubar)
view_menu = tk.Menu(menubar)
view_menu.add_command(label="标准")
view_menu.add_command(label="科学")
menubar.add_cascade(label="查看", menu=view_menu)
help_menu = tk.Menu(menubar)
help_menu.add_command(label="关于")
menubar.add_cascade(label="帮助", menu=help_menu)
def create_button(self, text, row, col):
button = tk.Button(self.master, text=text, font=('Arial', 14), width=5, height=2,
command=lambda: self.button_click(text))
button.grid(row=row, column=col, padx=5, pady=5)
def button_click(self, text):
if text == 'C':
self.display.delete(0, tk.END)
elif text == '=':
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(0, str(result))
except:
self.display.delete(0, tk.END)
self.display.insert(0, "ERROR")
else:
self.display.insert(tk.END, text)
def change_button_position(self):
button_list = self.master.grid_slaves()
for button in button_list:
if button not in self.button_position:
row = button.grid_info()['row']
col = button.grid_info()['column']
new_row = random.randint(0, 4)
new_col = random.randint(0, 3)
button.grid(row=new_row, column=new_col, padx=5, pady=5)
self.button_position.append(button)
self.master.after(1000, self.change_button_position)
return
if __name__ == '__main__':
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
该程序使用了tkinter库创建了一个GUI界面,包括数字键、操作键、菜单等,实现了加、减、乘、除基本运算和清零功能,每次启动时按键的位置会随机变换,并可扩展其他功能。
阅读全文