Add more functions
I have added a few more maths functions to the application and also provided a clear function. There are still a few items to add to help improve debugging but the application is starting to take shape.
Notes
window = Tk()
window.title('Maths Application')
window.geometry("570x150") # w x h
window.resizable(0,0)
The above code is being modified as I go. So I am changing the window size depending on what is being displayed.
I have also made the Window title reflect the purpose of the application.
That the source code now has 'result' as a label rather than output. This will show up future screenshots.

The code for the above is as follows.
#!/usr/bin/env python
import Tkinter # note use of caps
from Tkinter import *
window = Tk()
window.title('Maths Application')
window.geometry("570x150") # w x h
window.resizable(0,0)
#define button actions
def btn1():
#convert box text in to integers
ent1 = int(entrytext.get())
ent2 = int(entrytext2.get())
#add the 2 integers and store in variable add
add = (ent1 + ent2)
print (add)
#insert value of variable add in to box outtext
outtext1.insert(0,str(add)) # insert response
def btn2():
#print("subtraction")
ent1 = int(entrytext.get())
ent2 = int(entrytext2.get())
#subtract the 2 integers and store in variable sub
sub = (ent1 - ent2)
#insert value of variable sub in to box outtext
outtext1.insert(0,str(sub)) # insert response
def btn3():
#print("multiply")
ent1 = int(entrytext.get())
ent2 = int(entrytext2.get())
#multiply the 2 integers and store in variable mul
mul = (ent1 * ent2)
#insert value of variable mul in to box outtext
outtext1.insert(0,str(mul)) # insert response
def btn4():
#print("divide")
ent1 = int(entrytext.get())
ent2 = int(entrytext2.get())
#multiply the 2 integers and store in variable div
div = (ent1 / ent2)
#insert value of variable mul in to box outtext
outtext1.insert(0,str(div)) # insert response
#clear boxes
def clear():
#print("clear boxes") # leave in for legacy testing
entrytext.delete(0, END) # clear input box
entrytext2.delete(0, END) # clear input box2
outtext1.delete(0, END) # clear output box
btn_tog2 = Button( window, text ='+', command=btn1) # add
btn_tog3 = Button( window, text ='-', command=btn2) # subtract
btn_tog4 = Button( window, text ='x', command=btn3) #multiply
btn_tog5 = Button( window, text ='/', command=btn4) #divide
btn_tog6 = Button( window, text ='Clear', command=clear) #clear
btn_exit = Button( window, text ='Exit',command=exit) #exit
# define some labels
box1 = Label(window, text="1st Value")
box2 = Label(window, text="2nd Value")
box3 = Label(window, text="Result")
#define entry box
entry1 = StringVar() # this is our entry box
entry2 = StringVar()
entrytext = Entry(window, textvariable=entry1) # this is our entry box
entrytext2 = Entry(window, textvariable=entry2) # this is our second entry box
#define out box
entry2 = StringVar() # this is our output box
outtext1 = Entry(window, textvariable=entry2) # this is our output box
#display boxes
entrytext.grid(row = 3, column = 2,) #display entry box
entrytext2.grid(row = 3, column = 3,) #display entry box
outtext1.grid(row = 3, column = 4,) #display output box
#place labels
box1.grid(row = 1 , column = 2, padx = 5, pady = 5)
box2.grid(row = 1 , column = 3, padx = 5, pady = 5)
box3.grid(row = 1 , column = 4, padx = 5, pady = 5)
#buttons
btn_tog2.grid(row = 4, column = 2, padx = 1, pady = 1) # addition button
btn_tog3.grid(row = 4, column = 3, padx = 1, pady = 1) # subtraction button
btn_tog4.grid(row = 5, column = 2, padx = 1, pady = 1) # multiply button
btn_tog5.grid(row = 5, column = 3, padx = 1, pady = 1) # divide button
btn_tog6.grid(row = 4, column = 6, padx = 1, pady = 1) # clear button
btn_exit.grid(row = 3, column = 6, padx = 1, pady = 1) # exit button
window.mainloop()
The code that I used for a previous application to detect if numerical values have been used is below but provided 'as is' for now.
def response():
msg = "error : must be a text value"
i = circletext.get()
y = i.isdigit()
l = len(circletext.get())
#print l
if y == True or l == 0:
circletext.insert(0,(msg))
else:
x = random.choice(RESPONSES)
circletext2.delete(0, END) # clear prev output
circletext2.insert(0,str(x)) # insert response
I will integrate a version of this in to the main code.
#python, #tkinter, #programming, #python, #graphic, #applications, #bugs, #troubleshooting, #howto, #paignton, #library, #virtual, #codeclub
Happy to provide help and support via decentralised social media. I can be contacted on Mastodon here. You can get a free account on the http://qoto.org instance by following this link.

Licenced under Attribution 4.0 International (CC BY 4.0)
AI statement : Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity. Consent CANNOT be assumed, it has to be granted.
