- 计算器界面设计计算器是一种较为常用的小工具,简单的计算器有10个数字键、小数点、四则运算符、退格、删除、清零等按钮,还要有显示区以及等号按钮,按键较多,如何排列得既漂亮美观又方便实用,需要仔细进行设计。请利用本节介绍的布局方法,实现下图所示的计算器界面的布局。
from tkinter import *
root =Tk() #创建主界面
root.title("计算器")
result=StringVar()
result.set(" ")
#显示区
label=Label(root,text="",width=25,height=2,relief="raised",anchor=SE,textvariable=result) #textvariable变量绑定
label.grid(row=0, column=0,columnspan=4,padx=5,pady=5)
Button(root, text="C",width=5,fg="blue",command = lambda:result.set("")).grid(row=1, column=0) #按键用button实现
Button(root, text="DEL",width=5,command=lambda: result.set(result.get()[:-1])).grid(row=1,column=1)
Button(root, text="BCK",width=5,command=lambda: result.set(result.get()[:-1])).grid(row=1,column=2)
Button(root, text="/",width=5,command = lambda: result.set(result.get()+"/")).grid(row=1,column=3)
Button(root, text="7",width=5,command = lambda: result.set(result.get()+"7")).grid(row=2, column=0)
Button(root, text="8",width=5,command = lambda: result.set(result.get()+"8")).grid(row=2, column=1)
Button(root, text="9",width=5,command = lambda: result.set(result.get()+"9")).grid(row=2, column=2)
Button(root, text="*",width=5,command = lambda: result.set(result.get()+"*")).grid(row=2, column=3)
Button(root, text="4",width=5,command = lambda: result.set(result.get()+"4")).grid(row=3, column=0)
Button(root, text="5",width=5,command = lambda: result.set(result.get()+"5")).grid(row=3, column=1)
Button(root, text="6",width=5,command = lambda: result.set(result.get()+"6")).grid(row=3, column=2)
Button(root, text="-",width=5,command = lambda: result.set(result.get()+"-")).grid(row=3, column=3)
Button(root, text="1",width=5,command = lambda: result.set(result.get()+"1")).grid(row=4, column=0)
Button(root, text="2",width=5,command = lambda: result.set(result.get()+"2")).grid(row=4, column=1)
Button(root, text="3",width=5,command = lambda: result.set(result.get()+"3")).grid(row=4, column=2)
Button(root, text="+",width=5,command = lambda: result.set(result.get()+"+")).grid(row=4, column=3)
Button(root, text="0",width=5,command = lambda: result.set(result.get()+"0")).grid(row=5, column=0)
Button(root, text=".",width=5,command = lambda: result.set(result.get()+".")).grid(row=5, column=1)
Button(root, text="=",width=12,command = lambda: result.set(result.get()+"="+str(eval(result.get())))).grid(row=5, column=2,columnspan=2)
root.mainloop()
#用eval进行运算
可能有部分AI的内容,但是这个程序是正确的。
这段代码实现了一个简单的计算器应用,使用Python的tkinter库创建图形用户界面。
主窗口包含一个显示区和多个按键,每个按键对应一个数字或运算符。
显示区通过StringVar变量result来动态更新显示内容。按键点击事件通过lambda函数绑定到相应的操作,例如添加字符、删除字符或计算结果。计算结果使用eval函数进行计算,并在显示区显示。
优化后的代码添加了错误处理,以防止无效输入导致程序崩溃。
整个界面布局使用grid方法进行排列,使各个控件整齐排列在窗口中。