Create a simple GUI calculator using Tkinter in Python
In this blog, we are going to see how to make a simple calculator in Python using Tkinter.
The calculator is a very basic need and we all use it almost every day.
Having a calculator on your screens you work can be very handy and convenient.
This blog will help you create one using the Tkinter library which you can use on your machines.
Simple GUI calculator using Tkinter in Python
# import everything from tkinter module
from tkinter import *
expression = ""
# Function to update expression
def press(num):
global expression
# concatenation of string
expression = expression + str(num)
equation.set(expression)
# Function to evaluate the final expression
def equalpress():
#Try block for exceptions
try:
global expression
total = str(eval(expression))
equation.set(total)
expression = ""
#except block
except:
equation.set(" error ")
expression = ""
# Function to clear the contents
def clear():
global expression
expression = ""
equation.set("")
if __name__ == "__main__":
# create a GUI window
gui = Tk()
# set the background colour
gui.configure(background="light yellow")
# set the title
gui.title("Simple Calculator")
gui.geometry("265x125")
equation = StringVar()
expression_field = Entry(gui, textvariable=equation)
expression_field.grid(columnspan=4, ipadx=70)
equation.set('Expression to be evaluated')
# create Buttons
button1 = Button(gui, text=' 1 ', fg='black', bg='white',
command=lambda: press(1), height=1, width=7)
button1.grid(row=2, column=0)
button2 = Button(gui, text=' 2 ', fg='black', bg='white',
command=lambda: press(2), height=1, width=7)
button2.grid(row=2, column=1)
button3 = Button(gui, text=' 3 ', fg='black', bg='white',
command=lambda: press(3), height=1, width=7)
button3.grid(row=2, column=2)
button4 = Button(gui, text=' 4 ', fg='black', bg='white',
command=lambda: press(4), height=1, width=7)
button4.grid(row=3, column=0)
button5 = Button(gui, text=' 5 ', fg='black', bg='white',
command=lambda: press(5), height=1, width=7)
button5.grid(row=3, column=1)
button6 = Button(gui, text=' 6 ', fg='black', bg='white',
command=lambda: press(6), height=1, width=7)
button6.grid(row=3, column=2)
button7 = Button(gui, text=' 7 ', fg='black', bg='white',
command=lambda: press(7), height=1, width=7)
button7.grid(row=4, column=0)
button8 = Button(gui, text=' 8 ', fg='black', bg='white',
command=lambda: press(8), height=1, width=7)
button8.grid(row=4, column=1)
button9 = Button(gui, text=' 9 ', fg='black', bg='white',
command=lambda: press(9), height=1, width=7)
button9.grid(row=4, column=2)
button0 = Button(gui, text=' 0 ', fg='black', bg='white',
command=lambda: press(0), height=1, width=7)
button0.grid(row=5, column=0)
plus = Button(gui, text=' + ', fg='white', bg='black',
command=lambda: press("+"), height=1, width=7)
plus.grid(row=2, column=3)
minus = Button(gui, text=' - ', fg='white', bg='black',
command=lambda: press("-"), height=1, width=7)
minus.grid(row=3, column=3)
multiply = Button(gui, text=' * ', fg='white', bg='black',
command=lambda: press("*"), height=1, width=7)
multiply.grid(row=4, column=3)
divide = Button(gui, text=' / ', fg='white', bg='black',
command=lambda: press("/"), height=1, width=7)
divide.grid(row=5, column=3)
equal = Button(gui, text=' = ', fg='white', bg='black',
command=equalpress, height=1, width=7)
equal.grid(row=5, column=2)
clear = Button(gui, text='Clear', fg='white', bg='black',
command=clear, height=1, width=7)
clear.grid(row=5, column='1')
#RUN
gui.mainloop()
Output

Background
The entire purpose of this blog is to help one develop a simple desktop calculator that can be used for very basic arithmetic calculations.
The library being used is the Tkinter library best known as the prime GUI library for Python.
The Tkinter toolkit helps create the perfect GUI for a simple calculator and the available variety of functions and the vast scope of being able to orient and organize the GUI makes it very easy and convenient to have an elegant and useful calculator out of a little code on your computer.
Also read: Python: Radio buttons in Tkinter
Thank you for this, instead of only the code we would appreciate a step by step explanation of which function does what, if possible. Thanks again