源代码:
from tkinter import *
#输入框纯数字验证
def test(content):
return content.isdigit()
#加法按钮函数
def add():
inputentry.insert(END,"+")
#减法按钮函数
def sub():
inputentry.insert(END,"-")
#乘法函数
def multi():
inputentry.insert(END,"*")
#除法函数
def division():
inputentry.insert(END,"/")
#小数点
def point():
inputentry.insert(END,".")
#复位函数
def empty():
inputentry.delete(0,END)
#括号函数
def bracket():
inputentry.insert(END,"()")
#结果计算函数
def result():
processshow.delete(0,END)
processshow.insert(END,inputentry.get())
str1=inputentry.get()
str2=eval(str1)
inputentry.delete(0,END)
inputentry.insert(0,str2)
#main函数
root=Tk()
root.rowconfigure(0,weight=1)
root.columnconfigure(0,weight=1)
v=IntVar()
v1=StringVar()
root.title("计算器")
def test(content):
return content.isdigit()
oneframe=Frame(root)
oneframe.grid()
oneframe.grid_propagate(flag=True)
testCMD=root.register(test)
processshow=Entry(oneframe,textvariable=v1,width=40,justify=RIGHT)
processshow.grid()
Label(oneframe,text="计算过程:").grid(row=0,sticky=W)
inputentry=Entry(oneframe,textvariable=v,width=40,justify=RIGHT)
inputentry.grid()
inputentry.delete(0,END)
Label(oneframe,text="计算内容:").grid(stick=W,row=1)
secondframe=Frame(root)
secondframe.grid()
#第一行功能按钮
Button(secondframe,text="+",command=add).grid(row=2,column=0,padx=5,pady=5,stick=W)
Button(secondframe,text="--",command=sub).grid(row=2,column=1,padx=5,pady=5)
Button(secondframe,text=".",command=point).grid(row=2,column=2,padx=5,pady=5)
Button(secondframe,text="C",command=empty).grid(row=2,column=3,padx=5,pady=5)
#第二行功能按钮
Button(secondframe,text="*",command=multi).grid(row=3,column=0,padx=5,pady=10,stick=W)
Button(secondframe,text="/",command=division).grid(row=3,column=1,padx=5,pady=10)
Button(secondframe,text="( )",command= bracket).grid(row=3,column=2,padx=10,pady=15)
Button(secondframe,text="=",command=result).grid(row=3,column=3,padx=15,pady=20)
mainloop()
参考:https://blog.csdn.net/ocean35/article/details/83662413