tkinter-简单计算器

import tkinter as tk
from tkinter import *
from functools import partial

#读取数据
def get_input(entry,argu):
    entry.insert(END,argu)

#删除数据
def back_input(entry):
    input_len=len(entry.get())
    if input_len>0:
      entry.delete(input_len-1)


#清空数据
def clear(entry):
    entry.delete(0,END)

#计算数据
def cal(entry):
    input=entry.get()
    ouput=str(eval(input.strip()))
    clear(entry)
    entry.insert(END,ouput)
    
    
root=tk.Tk()
root.title("计算器")
root.resizable(width=False,height=False)

entry=tk.Entry(root,justify="right",font=("微软雅黑",12))
entry.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
myButton=partial(tk.Button,root,bg="#D5E0EE",activebackground="#E5E35B",padx=10, pady=3)

button_7=myButton(text="7",command=lambda :get_input(entry,'7'))
button_7.grid(row=1,column=0,pady=5)
button_8=myButton(text="8",command=lambda :get_input(entry,'8'))
button_8.grid(row=1,column=1,pady=5)
button_9=myButton(text="9",command=lambda :get_input(entry,'9'))
button_9.grid(row=1,column=2,pady=5)
button_add=myButton(text="+",command=lambda :get_input(entry,'+'))
button_add.grid(row=1,column=3,pady=5)

button_4=myButton(text="4",command=lambda :get_input(entry,'4'))
button_4.grid(row=2,column=0,pady=5)
button_5=myButton(text="5",command=lambda :get_input(entry,'5'))
button_5.grid(row=2,column=1,pady=5)
button_5=myButton(text="6",command=lambda :get_input(entry,'6'))
button_5.grid(row=2,column=2,pady=5)
button_sub=myButton(text="-",command=lambda :get_input(entry,'-'))
button_sub.grid(row=2,column=3,pady=5)

button_1=myButton(text="1",command=lambda :get_input(entry,'1'))
button_1.grid(row=3,column=0,pady=5)
button_2=myButton(text="2",command=lambda :get_input(entry,'2'))
button_2.grid(row=3,column=1,pady=5)
button_3=myButton(text="3",command=lambda :get_input(entry,'3'))
button_3.grid(row=3,column=2,pady=5)
button_mul=myButton(text="*",command=lambda :get_input(entry,'*'))
button_mul.grid(row=3,column=3,pady=5)

button_0=myButton(text="0",command=lambda :get_input(entry,'0'))
button_0.grid(row=4,column=0,columnspan=2,pady=5,padx=10,sticky = tk.W+tk.N+tk.E+tk.S)
button_dot=myButton(text=".",command=lambda :get_input(entry,'.'))
button_dot.grid(row=4,column=2,pady=5)
button_div=myButton(text="/",command=lambda :get_input(entry,'/'))
button_div.grid(row=4,column=3,pady=5)

button_back=myButton(text="back",command=lambda :back_input(entry))
button_back.grid(row=5,column=0,pady=5)
button_clear=myButton(text="C",command=lambda :clear(entry))
button_clear.grid(row=5,column=1,pady=5)
button_equal=myButton(text="=",command=lambda :cal(entry))
button_equal.grid(row=5,column=2,columnspan=2,pady=5,sticky=W+N+S+E)

root.mainloop()

你可能感兴趣的:(tkinter,python)