I'm trying to build a GUI Scientific Calculator using Tkinter, but my code does not want to run. Whenever I run it it says "Additional Information may be available in output window" and this: <The program 'python.exe' has exited with code -1 (0xffffffff)> pops up, there are no other errors evident when I run it , so I can't seem to figure out what the issue is. Any help would be of great assistance. Thanks in advance :)
from tkinter import *
import math as m
window=Tk()
window.title("Nitas' Scientific Calculator")
window.geometry('350x450')
window.configure(bg='purple')
#User input for numbers
user_input = Entry(Window, width=50, borderwidth=5, relief=RIDGE, fg='white', bg='black')
user_input.grid(row=0, column=0, columnspan=5, padx=10, pady=15)
def click(to_print):
old=user_input.get()
user_input.delete(0,END)
user_input.insert(0,old+to_print)
return
def sc(event):
key=event.widget
text=key['text']
num=user_input.get()
result=''
if text=='deg':
result=str(m.degrees(float(num)))
if text=='sin':
result=str(m.sin(float(num)))
if text=='cos':
result=str(m.cos(float(num)))
if text=='tan':
result=str(m.tan(float(num)))
if text=='lg':
result=str(m.log10(float(num)))
if text=='ln':
result=str(m.log(float(num)))
if text=='sqrt':
result=str(m.sqrt(float(num)))
if text=='x!':
result=str(m.factorial(float(num)))
if text=='1/x':
result=str(1/(float(num)))
if text == 'pi':
if num=="":
result=str(m.pi)
else:
result=str(float(num))
if text == 'e':
if num=="":
result=str(m.e)
else:
result=str(m.e**float(num))
user_input.delete(0, END)
user_input.insert(0, END)
def clear():
user_input.delete(0,END)
return
def bksps():
current=user_input.get()
length=len(current)
user_input.delete(length, END)
def evaluate():
ans=user_input.get()
ans=eval(ans)
user_input.delete(0, END)
user_input.insert(0, ans)
#Buttons
logbtn = Button(window, text="lg", padx=28, pady=10, relief=RAISED)
logbtn.bind("<Button-1>", sc)
ln = Button(window, text="ln", padx=28, pady=10, relief=RAISED)
ln.bind("<Button-1>", sc)
brack1 = Button(window, text="(", padx=28, pady=10, relief=RAISED, command=lambda : click("("))
brack2 = Button(window, text=")", padx=28, pady=10, relief=RAISED, command=lambda : click(")"))
dog = Button(window, text=".", padx=28, pady=10, relief=RAISED)
exp = Button(window, text="^", padx=28, pady=10, relief=RAISED)
degb = Button(window, text="deg", padx=23, pady=10, relief=RAISED)
deg.bind("<Button-1>", sc)
sinb = Button(window, text="sin", padx=24, pady=10, relief=RAISED)
sinb.bind("<Button-1>", sc)
cosb = Button(window, text="cos", padx=23, pady=10, relief=RAISED)
cosb.bind("<Button-1>", sc)
tanb = Button(window, text="tan", padx=23, pady=10, relief=RAISED)
tanb.bind("<Button-1>", sc)
sqrtm = Button(window, text="sqrt", padx=23, pady=10, relief=RAISED)
sqrtm.bind("<Button-1>", sc)
ac = Button(window, text="C", padx=29, pady=10, relief=RAISED, command=clear)
bksp = Button(window, text="Bksp", padx=19, pady=10, relief=RAISED, command=bksps)
mod = Button(window, text="mod", padx=19, pady=10, relief=RAISED)
div = Button(window, text="/", padx=29, pady=10, relief=RAISED, command=lambda : click("/"))
fact = Button(window, text="x!", padx=23, pady=10, relief=RAISED)
fact.bind("<Button-1>", sc)
seven = Button(window, text="7", padx=29, pady=10, relief=RAISED, command=lambda : click("7"))
eight = Button(window, text="8", padx=19, pady=10, relief=RAISED, command=lambda : click("8"))
nine = Button(window, text="9", padx=19, pady=10, relief=RAISED, command=lambda : click("9"))
mult = Button(window, text="*", padx=29, pady=10, relief=RAISED, command=lambda : click("^"))
frac = Button(window, text="1/x", padx=25, pady=10, relief=RAISED)
frac.bind("<Button-1>", sc)
four = Button(window, text="4", padx=30, pady=10, relief=RAISED, command=lambda : click("4"))
five = Button(window, text="5", padx=29, pady=10, relief=RAISED, command=lambda : click("5"))
six = Button(window, text="6", padx=29, pady=10, relief=RAISED, command=lambda : click("6"))
minus = Button(window, text="-", padx=29, pady=10, relief=RAISED, command=lambda : click("-"))
pib = Button(window, text="pi", padx=28, pady=10, relief=RAISED)
pib.bind("<Button-1>", sc)
one = Button(window, text="1", padx=30, pady=10, relief=RAISED, command=lambda: click("1"))
two = Button(window, text="2", padx=29, pady=10, relief=RAISED, command=lambda : click("2"))
three = Button(window, text="3", padx=29, pady=10, relief=RAISED, command=lambda : click("3"))
plus = Button(window, text="+", padx=29, pady=10, relief=RAISED, command=lambda : click("+"))
e_b = Button(window, text="e", padx=29, pady=10, relief=RAISED)
e_b.bind("<Button-1>", sc)
zero = Button(window, text="0", padx=29, pady=10, relief=RAISED, command=lambda : click("0"))
equal = Button(window, text="=", padx=29, pady=10, relief=RAISED, command=evaluate)
logbtn.grid(row=1, column=0)
ln.grid(row=1, column=1)
brack1.grid(row=1, column=2)
brack2.grid(row=1, column=3)
dot.grid(row=1, column=4)
exp.grid(row=2, column=0)
degb.grid(row=2, column=1)
sinb.grid(row=2, column=2)
cosb.grid(row=2, column=3)
tanb.grid(row=2, column=4)
sqrtm.grid(row=3, column=0)
ac.grid(row=3, column=1)
bksp.grid(row=3, column=2)
mod.grid(row=3, column=3)
div.grid(row=3, column=4)
fact.grid(row=4, column=0)
seven.grid(row=4, column=1)
eight.grid(row=4, column=2)
nine.grid(row=4, column=3)
mult.grid(row=4, column=4)
frac.grid(row=5, column=0)
four.grid(row=5, column=1)
five.grid(row=5, column=2)
six.grid(row=5, column=3)
minus.grid(row=5, column=4)
pib.grid(row=6, column=0)
one.grid(row=6, column=1)
two.grid(row=6, column=2)
three.grid(row=6, column=3)
plus.grid(row=6, column=4)
e_b.grid(row=7, column=0)
zero.grid(row=7, column=2)
equal.grid(row=7, column=3)
window.mainloop()```
User contributions licensed under CC BY-SA 3.0