两种计算器小程序对比
1 #计算器小程序一 2 from tkinter import * 3 4 master=Tk() 5 6 #验证第一个输入框 7 def makesure1(): 8 if e1.get().isdigit(): 9 return True 10 else: 11 e1.delete(0,END) 12 v.set('请输入数字!') 13 return False 14 #验证第二个输入框 15 def makesure2(): 16 if e2.get().isdigit(): 17 return True 18 else: 19 e2.delete(0,END) 20 v.set('请输入数字!') 21 return False 22 23 #加法运算函数 24 def calc(): 25 result =int(e1.get())+int(e2.get()) 26 v3.set(result) 27 28 29 #输入框Entry 30 e1=Entry(master,validate='focusout',validatecommand=makesure1)#焦点移出之后开始验证 31 e1.grid(row =0,column=0,padx=10,pady=10) 32 33 e2=Entry(master,validate='focusout',validatecommand=makesure2) 34 e2.grid(row=0,column=2,padx=10,pady=10) 35 v = StringVar() 36 v3=StringVar() 37 e3=Entry(master,textvariable=v3,state='readonly') 38 e3.grid(row=0,column=4,padx=10,pady=10) 39 40 #运算符Label 41 l1 = Label(master,text='+') 42 l1.grid(row=0,column=1) 43 44 l2 = Label(master,text='=') 45 l2.grid(row=0,column=3) 46 47 l3=Label(master,textvariable=v) 48 l3.grid(row=2,column=2) 49 50 #运算命令button 51 b1 = Button(master,text='开始计算',command=calc) 52 b1.grid(row=1,column=2,padx=10,pady=10) 53 54 mainloop()
1 #计算器小程序二 2 from tkinter import * 3 4 master=Tk() 5 6 #验证输入框 7 def test(content): 8 return content.isdigit() 9 10 #技能包冷却 11 makesure=master.register(test) 12 13 #计算函数 14 def calc(): 15 result=int(e1.get())+int(e2.get()) 16 v3.set(result) 17 18 #输入框组件 19 e1=Entry(master,validate='key',\ 20 validatecommand=(makesure,'%P')) 21 #以上,当输入框被编辑的时候即开启验证,如果验证返回为真则会保留,否则输不进去 22 e1.grid(row=0,column=0,padx=10,pady=10) 23 24 e2=Entry(master,validate='key',\ 25 validatecommand=(makesure,'%P')) 26 e2.grid(row=0,column=2,padx=10,pady=10) 27 28 v3=StringVar() 29 e3=Entry(master,textvariable=v3,state='readonly') 30 e3.grid(row=0,column=4,padx=10,pady=10) 31 32 #运算符号组件 33 l1=Label(master) 34 l1.grid(row=0,column=1,padx=10,pady=10) 35 36 l2=Label(master) 37 l2.grid(row=0,column=3,padx=10,pady=10) 38 39 #命令按钮组件 40 b1=Button(master,text='开始计算',command=calc) 41 b1.grid(row=1,column=2,padx=10,pady=10) 42 43 mainloop()