Python3使用Tkinter模块写一个简单计算器

Python3用Tkinter写一个简单计算器

这个计算器及其简单,支持点击按钮输入文本框。用的都是基础知识。
Python3使用Tkinter模块写一个简单计算器_第1张图片
梅开多度,直接上图

使用到了eval函数,将字符串转化为数学表达式

代码如下:

from tkinter import *

#用于按下等号时显示答案
def calculate():
    str2=eval(tt.get())
    tt.insert(END,'=')
    tt.insert(END, str2)

#创建一个Tk对象
#窗口标题调整窗口大小
root = Tk()
root.title("简单计算器")
root.geometry("400x400")

#创建框架,并调整位置
f1=Frame(root);f1.pack()
f2=Frame(root);f2.pack()
f3=Frame(root);f3.pack()
f4=Frame(root);f4.pack()
f5=Frame(root);f5.pack()

#设置文本框,并实时显示输入情况
Label(f1, text="计算内容").pack()
tt=Entry(f1,textvariable=StringVar())
tt.pack()
tt.delete(0, END)

#按钮位置及其触发事件
b1=Button(f2,text='1',command=lambda : tt.insert(END,'1'))
b1.grid(row=1,column=1,ipadx=6)
b2=Button(f2,text='2',command=lambda : tt.insert(END,'2'))
b2.grid(row=1,column=2,ipadx=6)
b3=Button(f2,text='3',command=lambda : tt.insert(END,'3'))
b3.grid(row=1,column=3,ipadx=6)
b4=Button(f2,text='+',command=lambda : tt.insert(END,'+'))
b4.grid(row=1,column=4,ipadx=6)
b5=Button(f2,text='4',command=lambda : tt.insert(END,'4'))
b5.grid(row=2,column=1,ipadx=6)
b6=Button(f2,text='5',command=lambda : tt.insert(END,'5'))
b6.grid(row=2,column=2,ipadx=6)
b7=Button(f2,text='6',command=lambda : tt.insert(END,'6'))
b7.grid(row=2,column=3,ipadx=6)
b8=Button(f2,text='-',command=lambda : tt.insert(END,'-'))
b8.grid(row=2,column=4,ipadx=6)
b9=Button(f2,text='7',command=lambda : tt.insert(END,'7'))
b9.grid(row=3,column=1,ipadx=6)
b10=Button(f2,text='8',command=lambda : tt.insert(END,'8'))
b10.grid(row=3,column=2,ipadx=6)
b11=Button(f2,text='9',command=lambda : tt.insert(END,'9'))
b11.grid(row=3,column=3,ipadx=6)
b12=Button(f2,text='*',command=lambda : tt.insert(END,'*'))
b12.grid(row=3,column=4,ipadx=6)
b13=Button(f2,text='0',command=lambda : tt.insert(END,'0'))
b13.grid(row=4,column=1,ipadx=6)
b14=Button(f2,text='\\',command=lambda : tt.insert(END,'\\'))
b14.grid(row=4,column=2,ipadx=6)
b15=Button(f2,text='=',command=lambda : calculate())
b15.grid(row=4,column=3,columnspan=5,sticky=E+W)
root.mainloop()

你可能感兴趣的:(python)