python写一个带有界面的计算器
为了创建一个带有图形用户界面(GUI)的计算器,我们可以使用Python的tkinter
库。tkinter
是Python的标准GUI库,它允许我们创建窗口、按钮、文本框等GUI元素。
下面是一个简单的带有GUI的计算器示例:
python
import tkinter as tk
class Calculator:
def __init__(self, root):
self.root = root
self.root.title("简单计算器")
self.result_var = tk.StringVar()
self.result_var.set("0")
self.create_widgets()
def create_widgets(self):
# 创建显示结果的Entry
self.result_entry = tk.Entry(self.root, textvariable=self.result_var, font=('Arial', 24), bd=10, insertwidth=4, width=14, borderwidth=4)
self.result_entry.grid(row=0, column=0, columnspan=4)
# 创建按钮并放置在网格中
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'C', '0', '=', '+'
]
row_val = 1
col_val = 0
for button in buttons:
command = lambda x=button: self.click_event(x)
tk.Button(self.root, text=button, padx=20, pady=20, font=('Arial', 18), command=command).grid(row=row_val, column=col_val)
col_val += 1
if col_val > 3:
col_val = 0
row_val += 1
def click_event(self, key):
current = self.result_var.get()
if key == "=":
try:
self.result_var.set(eval(current))
except Exception as e:
self.result_var.set("错误")
elif key == "C":
self.result_var.set("0")
else:
self.result_var.set(current + key)
if __name__ == "__main__":
root = tk.Tk()
app = Calculator(root)
root.mainloop()
代码说明
-
Calculator类:
- 初始化方法
__init__
:设置窗口标题,创建并初始化一个用于显示结果的StringVar
变量,然后调用create_widgets
方法创建按钮和文本框。 create_widgets
方法:创建用于显示结果的Entry
和用于输入操作的按钮,并将它们放置在网格布局中。click_event
方法:处理按钮点击事件。根据点击的按钮更新显示结果。如果点击的是"=",则尝试计算表达式的结果;如果点击的是"C",则清除当前结果;否则,将点击的按钮值追加到当前结果中。
- 初始化方法
-
主程序:
- 创建
Tk
根窗口实例。 - 创建
Calculator
应用实例,传入根窗口。 - 进入
mainloop
循环,等待用户交互。
- 创建
注意事项
- 使用
eval
函数计算表达式的结果时,存在安全风险,因为它会执行传入的字符串作为Python代码。在实际应用中,应该使用更安全的解析和计算方法。 - 本示例仅用于演示目的,并未包含所有可能的错误处理和边界情况。
将上述代码保存为一个Python文件(例如gui_calculator.py
),然后在命令行中运行该文件:
sh
python gui_calculator.py
这将打开一个带有简单GUI的计算器窗口,您可以在其中输入计算表达式并查看结果。