python计算器程序_python GUI- 计算器程序

importtkinterimportdecimalimportmathclassKeyValue:def__init__(self,key_):self.key_=key_ self.flag=0defdel_(self):print("del_")ifsave:save.pop()else:passvar_text.set(''.join(save))defclear(self):print("clear")save.clear()var_text.set('')defmemory(self):print("memory conf")ifself.key_=="m+":ifsave==[]:passelifself.flag==1:passelse:self.flag=1elifself.key_=="mr":passelifself.key_=='ms':self.clear()elifself.key_=='mc':self.flag=0self.clear()elifself.key_=='m-':self.flag=0self.clear()else:passvar_text.set(''.join(save))defplus_sub(self):print('plus_sub')ifsave[0]:ifsave[0]=='-':save[0]='+'elifsave[0]=='+':save[0]='-'else:save.insert(0,'-')var_text.set(''.join(save))defcalculate(self):globalsave,var_text,result,symbolifvar_text.get()=='':passelse:get1=decimal.Decimal(var_text.get())ifself.key_in('1/x','sqrt'):ifself.key_=='1/x':result=1/get1elifself.key_=='sqrt':result=math.sqrt(get1)elifself.key_in('+','-','*','/','=','%'):ifsymbolisnotNone:get1=decimal.Decimal(result)get2=decimal.Decimal(var_text.get())ifsymbol=='+':result=get1+get2elifsymbol=='-':result=get1-get2elifsymbol=='*':result=get1*get2elifsymbol=='/':result=get1/get2elifsymbol=='%':result=get1%get2else:result=get1ifself.key_=='=':print('calculate result = ',result)symbol=Noneelse:symbol=self.key_print(symbol)var_text.set(str(result))save.clear()defpress(self):print('press',self.key_)ifself.key_=='.':ifsave.count('.')>=1:passelse:ifsave==[]:save.append('0')else:save.append(self.key_)var_text.set(''.join(save))else:save.append(self.key_)var_text.set(''.join(save))defpoint(self):print('point')ifsave.count('.')>=1:passelse:ifsave==[]:save.append('0')save.append('.')var_text.set(''.join(save))defwindow(root):globalvar_text entry1=tkinter.Label(root,width=40,height=2,bg='white',anchor='se',textvariable=var_text)entry1.grid(row=0,columnspan=5)button_MC=tkinter.Button(root,text='MC',width=5,command=KeyValue('mc').clear)button_MC.grid(row=1,column=0)button_MR=tkinter.Button(root,text='MR',width=5,command=KeyValue('mr').memory)button_MR.grid(row=1,column=1)button_MS=tkinter.Button(root,text='MS',width=5,command=KeyValue('ms').memory)button_MS.grid(row=1,column=2)button_M1=tkinter.Button(root,text='M+',width=5,command=KeyValue('m+').memory)button_M1.grid(row=1,column=3)button_M2=tkinter.Button(root,text='M-',width=5,command=KeyValue('m-').clear)button_M2.grid(row=1,column=4)button_del=tkinter.Button(root,text='←',width=5,command=KeyValue('del_').del_)button_del.grid(row=2,column=0)button_CE=tkinter.Button(root,text='CE',width=5,command=KeyValue('ce').clear)button_CE.grid(row=2,column=1)button_C=tkinter.Button(root,text=' C ',width=5,command=KeyValue('c').clear)button_C.grid(row=2,column=2)button_P_S=tkinter.Button(root,text='±',width=5,command=KeyValue('c').plus_sub)button_P_S.grid(row=2,column=3)button_sqrt=tkinter.Button(root,text='√',width=5,command=KeyValue('sqrt').calculate)button_sqrt.grid(row=2,column=4)button_7=tkinter.Button(root,text=' 7 ',width=5,command=KeyValue('7').press)button_7.grid(row=3,column=0)button_8=tkinter.Button(root,text=' 8 ',width=5,command=KeyValue('8').press)button_8.grid(row=3,column=1)button_9=tkinter.Button(root,text=' 9 ',width=5,command=KeyValue('9').press)button_9.grid(row=3,column=2)button_c=tkinter.Button(root,text=' / ',width=5,command=KeyValue('/').calculate)button_c.grid(row=3,column=3)button_f=tkinter.Button(root,text=' % ',width=5,command=KeyValue('%').calculate)button_f.grid(row=3,column=4)button_4=tkinter.Button(root,text=' 4 ',width=5,command=KeyValue('4').press)button_4.grid(row=4,column=0)button_5=tkinter.Button(root,text=' 5 ',width=5,command=KeyValue('5').press)button_5.grid(row=4,column=1)button_6=tkinter.Button(root,text=' 6 ',width=5,command=KeyValue('6').press)button_6.grid(row=4,column=2)button_multi=tkinter.Button(root,text=' * ',width=5,command=KeyValue('*').calculate)button_fraction=tkinter.Button(root,text='1/x',width=5,command=KeyValue('1/x').calculate)button_multi.grid(row=4,column=3)button_fraction.grid(row=4,column=4)button_1=tkinter.Button(root,text=' 1 ',width=5,command=KeyValue('1').press)button_2=tkinter.Button(root,text=' 2 ',width=5,command=KeyValue('2').press)button_3=tkinter.Button(root,text=' 3 ',width=5,command=KeyValue('3').press)button__=tkinter.Button(root,text=' - ',width=5,command=KeyValue('-').calculate)button_equal=tkinter.Button(root,text=' \n = \n ',width=5,command=KeyValue('=').calculate)button_1.grid(row=5,column=0)button_2.grid(row=5,column=1)button_3.grid(row=5,column=2)button__.grid(row=5,column=3)button_equal.grid(row=5,column=4,rowspan=2)button_0=tkinter.Button(root,text=' 0 ',width=13,command=KeyValue('0').press)button_sub=tkinter.Button(root,text=' . ',width=5,command=KeyValue('.').press)button_plus=tkinter.Button(root,text=' + ',width=5,command=KeyValue('+').calculate)button_0.grid(row=6,column=0,columnspan=2)button_sub.grid(row=6,column=2)button_plus.grid(row=6,column=3)defmenu(root):menu=tkinter.Menu(root)sub_menu1=tkinter.Menu(menu,tearoff=0)sub_menu1.add_command(label='标准')sub_menu1.add_command(label='科学')sub_menu1.add_command(label='程序')menu.add_cascade(label='查看(V)',menu=sub_menu1)sub_menu2=tkinter.Menu(menu,tearoff=0)sub_menu2.add_command(label='复制')sub_menu2.add_command(label='粘贴')menu.add_cascade(label='编辑(E)',menu=sub_menu2)sub_menu=tkinter.Menu(menu,tearoff=0)sub_menu.add_command(label='查看帮助')sub_menu.add_separator()sub_menu.add_command(label='关于计算器')menu.add_cascade(label='帮助(H)',menu=sub_menu)root.config(menu=menu)if__name__=='__main__':root=tkinter.Tk()root.title('计算器')root.resizable(0,0)result=symbol=Nonevar_text=tkinter.StringVar()save=[]window(root)menu(root)root.mainloop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python计算器GUI界面可以使用Tkinter模块来实现。首先,需要导入Tkinter模块并创建一个Tk对象: ```python import tkinter as tk from tkinter import messagebox root = tk.Tk() root.title("简易计算器") ``` 然后,可以创建一个显示计算结果的文本框: ```python result_entry = tk.Entry(root, width=40) result_entry.grid(row=0, column=0, columnspan=4) ``` 接下来,可以创建按钮并定义相应的点击事件,这些按钮可以代表数字、运算符以及一些特殊功能,例如清除和等于: ```python def btn_click(value): current = result_entry.get() result_entry.delete(0, tk.END) result_entry.insert(tk.END, current + value) def calculate(): expression = result_entry.get() try: result = eval(expression) result_entry.delete(0, tk.END) result_entry.insert(tk.END, str(result)) except: messagebox.showerror("错误", "表达式格式错误") btn7 = tk.Button(root, text="7", command=lambda: btn_click("7")) btn7.grid(row=1, column=0) # 添加其他数字按钮... btn_add = tk.Button(root, text="+", command=lambda: btn_click("+")) btn_add.grid(row=1, column=3) # 添加其他运算符按钮... btn_clear = tk.Button(root, text="Clear", command=lambda: result_entry.delete(0, tk.END)) btn_clear.grid(row=2, column=0) btn_equals = tk.Button(root, text="=", command=calculate) btn_equals.grid(row=2, column=3) # 添加其他特殊功能按钮... ``` 最后,调用root对象的mainloop()方法来运行GUI界面: ```python root.mainloop() ``` 通过以上代码,可以创建一个简单的Python计算器GUI界面,用户可以通过点击按钮输入数字和运算符,然后点击等于按钮进行计算,并在文本框中显示结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值