from tkinter import * from tkinter import messagebox #Frame:是tkinter框架控件,屏幕上会有个矩形区域,存放新增的东西 class Calculator(Frame): def __init__(self,master=None): # Frame.__init__(self,master,bg='red') Frame.__init__(self) self.pack(expand=YES, fill=BOTH) #要记得pack()的时候设置为全扩充 # self.master.geometry("320x210+500+200") self.master.title('计算器') self.master.rowconfigure( 0, weight = 2 ) self.master.columnconfigure( 0, weight = 2 ) self.grid( sticky = W+E+N+S ) text = Text(self, width=10, height=3) text.grid(row=0, column=0, columnspan=6, sticky= W+E+N+S) grid = '789+456-123*0./=' for index, textChar in enumerate(grid): a = Button(self, text=textChar, width=8) a["command"] = lambda tt=textChar:text.insert("insert", tt) a.grid(row=2 + index // 4, column=index % 4) if a["text"] == '=': a["command"]=lambda :text.insert("insert", "=\n"+str(eval(text.get(0.0, END)))) b = Button(self, text="clear", width=8) b["command"] = lambda :text.delete(0.0, END) b.grid(row=2, column=5, rowspan=4, sticky=W+E+N+S) if __name__ == '__main__': Calculator().mainloop() # 1 mainloop()方法允许程序循环执行,并进入等待和处理事件。 2、mainloop()方法的作用是监控每个组件,当组件发生变化或触发事件时,会立即更新窗口。