python tkinter计算器实例_Python GUI tkinter科学计算器

fromtkinterimport*fromtkinterimportttkfrommathimport*classCalculator:calc_value=0.0div_trigger=Falsemult_trigger=Falseadd_trigger=Falsesub_trigger=Falseasin_trigger=Falsedefbutton_press(self,value):entry_val=self.number_entry.get()entry_val+=value

self.number_entry.delete(0,"end")self.number_entry.insert(0,entry_val)defisfloat(self,str_val):try:float(str_val)returnTrueexceptValueError:returnFalsedefmath_button_press(self,value):ifself.isfloat(str(self.number_entry.get())):self.add_trigger=Falseself.sub_trigger=Falseself.mult_trigger=Falseself.div_trigger=Falseself.asin_trigger=Falseself.calc_value=float(self.entry_value.get())ifvalue=="/":print("/ Pressed")self.div_trigger=Trueelifvalue=="*":print("* Pressed")self.mult_trigger=Trueelifvalue=="+":print("+ Pressed")self.add_trigger=Trueelifvalue=="sin":print("sin Pressed")self.asin_trigger=Trueelse:print("- Pressed")self.sub_trigger=Trueself.number_entry.delete(0,"end")defequal_button_press(self):ifself.add_triggerorself.sub_triggerorself.mult_triggerorself.div_triggerorself.asin_trigger:ifself.add_trigger:solution=self.calc_value+float(self.entry_value.get())elifself.sub_trigger:solution=self.calc_value-float(self.entry_value.get())elifself.mult_trigger:solution=self.calc_value*float(self.entry_value.get())elifself.asin_trigger:solution=self.calc_value sin float(self.entry_value.get())else:solution=self.calc_value/float(self.entry_value.get())print(self.calc_value," ",float(self.entry_value.get())," ",solution)#self.number_entry.delete(0,"end")self.number_entry.insert(0,solution)def__init__(self,root):self.entry_value=StringVar(root,value="")root.title("Calculator")root.geometry("860x440")root.resizable(width=False,height=False)style=ttk.Style()style.configure("TButton",font="Serif 15",padding=10)style.configure("TEntry",font="Serif 18",padding=10)# Create the text entry boxself.number_entry=ttk.Entry(root,textvariable=self.entry_value,width=50)self.number_entry.grid(row=0,columnspan=4)# ----- 1st Row -----self.button7=ttk.Button(root,text="7",command=lambda:self.button_press('7')).grid(row=1,column=0)self.button8=ttk.Button(root,text="8",command=lambda:self.button_press('8')).grid(row=1,column=1)self.button9=ttk.Button(root,text="9",command=lambda:self.button_press('9')).grid(row=1,column=2)self.button_div=ttk.Button(root,text="/",command=lambda:self.math_button_press('/')).grid(row=1,column=3)# ----- 2nd Row -----self.button4=ttk.Button(root,text="4",command=lambda:self.button_press('4')).grid(row=2,column=0)self.button5=ttk.Button(root,text="5",command=lambda:self.button_press('5')).grid(row=2,column=1)self.button6=ttk.Button(root,text="6",command=lambda:self.button_press('6')).grid(row=2,column=2)self.button_mult=ttk.Button(root,text="*",command=lambda:self.math_button_press('*')).grid(row=2,column=3)# ----- 3rd Row -----self.button1=ttk.Button(root,text="1",command=lambda:self.button_press('1')).grid(row=3,column=0)self.button2=ttk.Button(root,text="2",command=lambda:self.button_press('2')).grid(row=3,column=1)self.button3=ttk.Button(root,text="3",command=lambda:self.button_press('3')).grid(row=3,column=2)self.button_add=ttk.Button(root,text="+",command=lambda:self.math_button_press('+')).grid(row=3,column=3)# ----- 4th Row -----self.button_clear=ttk.Button(root,text="AC",command=lambda:self.button_press('AC')).grid(row=4,column=0)self.button0=ttk.Button(root,text="0",command=lambda:self.button_press('0')).grid(row=4,column=1)self.button_equal=ttk.Button(root,text="=",command=lambda:self.equal_button_press()).grid(row=4,column=2)self.button_sub=ttk.Button(root,text="-",command=lambda:self.math_button_press('-')).grid(row=4,column=3)#------- 5th Row -------self.button_asin=ttk.Button(root,text="sin",command=lambda:self.math_button_press('sin')).grid(row=5,column=0)root=Tk()calc=Calculator(root)root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值