GUI Scientific Calculator not running , using Tkinter

-3

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()```
python
tkinter
asked on Stack Overflow Jan 15, 2021 by anita john • edited Jan 21, 2021 by marc_s

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0