话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错:
接下来就仔细分析一下是如何制作的:
简易计算器
第一步:导入资源库
在过程中使用到了tkinter这个资源库,win+R打开CMD输入:pip install python-tk。
python的引入方式为:import tkinter
第二步:创建窗口
定义窗口并设置窗口标题:
# 创建窗口
window = tkinter.Tk()
window.title("计算器")
第三步:变量初始化
设置算式记录变量以及运算历史变量的值:
# 记录算式
expstr = ""
# 记录运算历史
history_label_obj_list = []
第四步:定义按钮点击事件函数
计算器有很多按钮,当我们点击相应的按钮时会触发相应的事件,这时我们就需要定义一个按钮点击事件的函数。
# 按钮点击事件
def onClick(key):
global expstr # 定义全局变量
if key == "=":
jieguo = round(eval(expstr), 2)# 结果保留2位小数
result["text"] = jieguo
frame_right.pack()
# 将算式记录显示出来
t = tkinter.Label(frame_inner, text=expstr + "=" + str(jieguo),
background="seashell")
t.pack()
history_label_obj_list.append(t)# 容器存储算式记录
elif key == "AC":
result["text"] = ""
expstr = ""
else:
expstr = expstr + str(key)
result["text"] = expstr
第五步:定义清空运算历史函数
该计算器包含有记录运算历史的功能,当我们点击清空的时候,会调用我们定义的清空运算历史的函数。
# 清空运算历史
def clean_history():
for x in history_label_obj_list:
print(x)
x.destroy()
第六步:设置数字0-9按钮
将各个按钮设置长为6,宽为2,分别在frame_left。
数字7-9分布在第二行的第0-2列:
num7 = tkinter.Button(frame_left, text="7", width=6, height=2, command=lambda: onClick(7))
num7.grid(row=2,column=0)
num8 = tkinter.Button(frame_left, text="8", width=6, height=2, command=lambda: onClick(8))
num8.grid(row=2,column=1)
num9 = tkinter.Button(frame_left, text="9", width=6, height=2, command=lambda: onClick(9))
num9.grid(row