纯属娱乐,😄这里使用Text为了方便显示计算的式子,由于技术不够,所以仅仅实现了加减乘除四则运算,因为返回的值为字符串,所以使用eval()函数来进行直接计算,而MA,MB,MC,MD则是生成一个句子。AC用来“归零”。后续学习更多知识后将做更多功能的实现。 结果图:
from tkinter import * class Txts(Frame): def __init__(self,master): super().__init__(master) self.master=master self.pack() self.creatwindow() def creatwindow(self): btnTxt=(("MC","MA","MB","MD"), ("AC","AC","/","*"), (7,8,9,"-"), (4,5,6,"+"), (1,2,3,"="), (0,".")) self.w1=Text(self,height=2,width=20) self.w1.grid(row=0,column=0,columnspan=4,pady=10) for row_index,row in enumerate(btnTxt): for col_index,col in enumerate(row): def getnum(event): x=event.widget['text'] if x=="=": y=self.w1.get(1.0,END) self.w1.delete(1.0,END) self.w1.insert(END,eval(y)) elif x=="AC": self.w1.delete(1.0, END) elif x == "MA" : self.w1.delete(1.0, END) self.w1.insert(END,"我") elif x == "MB": self.w1.insert(END, "爱") elif x == "MC": self.w1.insert(END, "你") elif x == "MD": y = self.w1.get(1.0, END) self.w1.delete(1.0, END) self.w1.insert(END, y*9) else: self.w1.insert(END,x) if col=="=": btn=Button(self,text=col,width=2) btn.grid(row=row_index+1,column=col_index,rowspan=2,sticky=NSEW) btn.bind("<Button-1>", getnum) elif col==0: btn=Button(self,text=col,width=2) btn.grid(row=row_index+1,column=col_index,columnspan=2,sticky=EW) btn.bind("<Button-1>", getnum) elif col==".": btn=Button(self, text=col, width=2) btn.grid(row=row_index + 1, column=col_index+1, sticky=EW) btn.bind("<Button-1>", getnum) else: btn=Button(self,text=col,width=2) btn.grid(row=row_index+1,column=col_index,sticky=EW) btn.bind("<Button-1>",getnum) if __name__ == '__main__': root = Tk() root.title("计算器") root.geometry("200x230") Txts(master=root) root.mainloop() ```