from tkinter import *
def click(event):
global sval
text = event.widget.cget("text")
if text =="=":
if sval.get().isdigit():
value = int(sval.get())
else:
try:
value = eval(screen.get())
except Exception as e:
print(e)
value = "Syntax error!"
sval.set(value)
screen.update()
elif text == "C":
sval.set("")
screen.update()
elif text == "D":
sval.set(sval.get()[:-1])
screen.update()
else:
sval.set(sval.get() + text)
screen.update()
ak = Tk()
ak.geometry("305x500")
ak.title("Calculator")
ak.wm_iconbitmap("calculator.png")
sval = StringVar()
sval.set("")
screen = Entry(ak,textvar=sval,font="lucida 30")
screen.pack(fill=X,padx=10,pady=20)
m = Frame(ak)
f1 = Frame(m)
r = ['^','u','D','C']
for item in r:
b = Button(f1,text=item,font="lucida 20 bold",padx=18,pady=10,bg="gray"
,fg="white")
b.pack(side=LEFT)
b.bind('<Button-1>',click)
f1.pack()
f = Frame(m)
for i in range(7,10):
b =Button(f,text=f"{i}",font="lucida 20 bold",padx=20,pady=10,bg="black"
,fg="white")
b.pack(side=LEFT)
b.bind('<Button-1>',click)
x =Button(f,text="*",font="lucida 20 bold",padx=18,pady=10,bg="gray",fg="white")
x.pack(side=LEFT)
x.bind('<Button-1>',click)
f.pack()
f1= Frame(m)
for i in range(4,7):
b =Button(f1,text=f"{i}",font="lucida 20 bold",padx=20,pady=10,bg="black"
,fg="white")
b.pack(side=LEFT)
b.bind('<Button-1>',click)
x =Button(f1,text="-",font="lucida 20 bold",padx=20,pady=10,bg="gray"
,fg="white")
x.pack(side=LEFT)
x.bind('<Button-1>',click)
f1.pack()
f2 = Frame(m)
for i in range(1,4):
b =Button(f2,text=f"{i}",font="lucida 20 bold",padx=20,pady=10,bg="black"
,fg="white")
b.pack(side=LEFT)
b.bind('<Button-1>',click)
x =Button(f2,text="+",font="lucida 20 bold",padx=20,pady=10,bg="gray",fg="white")
x.pack(side=LEFT)
x.bind('<Button-1>',click)
f2.pack()
sy = ['.','0','=']
f3 = Frame(m)
for i in sy:
b =Button(f3,text=f"{i}",font="lucida 22 bold",padx=21,pady=10,bg="black"
,fg="white")
b.pack(side=LEFT)
b.bind('<Button-1>',click)
x =Button(f3,text="/",font="lucida 20 bold",padx=20,pady=12,bg="gray"
,fg="white")
x.pack(side=LEFT)
x.bind('<Button-1>',click)
f3.pack()
m.pack(anchor="sw",side=BOTTOM)
ak.mainloop()
Comments
Post a Comment