Building a Simple Calculator in Python with Tkinter

Graphical User Interfaces (GUIs) are a great way to create interactive applications. In this article, we’ll walk you through the process of building a basic calculator using Python and Tkinter, a popular GUI library for Python. By the end of this tutorial, you’ll have a functional calculator application that can perform basic arithmetic operations.

Prerequisites:

  1. Python: Make sure you have Python installed on your system. You can download it from the official website (https://www.python.org/downloads/).
  2. Tkinter: Tkinter is included with most Python installations, so you don’t need to install it separately.

Creating the Calculator:

Step 1: Importing Tkinter

Start by importing the Tkinter library. Create a new Python file (e.g., calculator.py) and add the following code:

import tkinter as tk

Step 2: Creating the Calculator Window

Now, create the main calculator window and set its title. Add the following code:

# Create the main window
window = tk.Tk()
window.title("Simple Calculator")

Step 3: Adding an Entry Widget

To display the input and output, add an Entry widget. This widget allows users to type and see the calculations. Also, create a variable to store the current input.

# Create an Entry widget for input/output
input_field = tk.Entry(window, width=30)
input_field.grid(row=0, column=0, columnspan=4)

current_input = ""

Step 4: Building the Calculator Buttons

Create buttons for digits (0-9) and operators (+, -, *, /). We’ll use a grid layout to arrange them.

# Create buttons for digits 0-9 and operators
buttons = [
    '7', '8', '9', '/',
    '4', '5', '6', '*',
    '1', '2', '3', '-',
    '0', '.', '=', '+'
]

row = 1
col = 0

for button in buttons:
    tk.Button(window, text=button, padx=20, pady=20, command=lambda b=button: button_click(b)).grid(row=row, column=col)
    col += 1
    if col > 3:
        col = 0
        row += 1

Step 5: Implementing Calculator Logic

Now, let’s implement the logic for button clicks and the calculation itself.

# Define the button click function
def button_click(char):
    global current_input
    if char == '=':
        try:
            result = eval(current_input)
            input_field.delete(0, tk.END)
            input_field.insert(0, str(result))
        except:
            input_field.delete(0, tk.END)
            input_field.insert(0, "Error")
    else:
        current_input += char
        input_field.insert(tk.END, char)

# Create a Clear button
def clear():
    global current_input
    current_input = ""
    input_field.delete(0, tk.END)

tk.Button(window, text="C", padx=20, pady=20, command=clear).grid(row=5, column=0)

Step 6: Running the Application

Finally, add code to start the Tkinter main loop, which runs the GUI application.

window.mainloop()

Now, you can run your calculator application by executing the Python script:

python calculator.py

In this article, you’ve learned how to build a simple calculator using Python and Tkinter. With a basic understanding of Tkinter’s widgets and event handling, you can create more complex GUI applications. Feel free to expand this calculator by adding features like parentheses, additional functions, or a more appealing user interface to enhance the user experience.