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

simple GUI calculator using Tkinter in Python

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

One response to “Create a simple GUI calculator using Tkinter in Python”

  1. Kidist says:

    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

Leave a Reply

Your email address will not be published. Required fields are marked *