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