Cómo Hacer una Calculadora en Python con Interfaz Gráfica

En este tutorial, aprenderás a crear una calculadora con una interfaz gráfica utilizando la librería Tkinter en Python. Tkinter es una librería estándar de Python que te permite crear interfaces de usuario.

Paso 1: Instalación de la Librería Tkinter

Antes de comenzar, asegúrate de tener Python instalado en tu sistema. Tkinter viene incluido con la instalación estándar de Python, por lo que no necesitas instalar nada adicionalmente.

Paso 2: Desglose del Código

Importar la Librería Tkinter

Primero, importamos la librería Tkinter. Esta librería nos permite crear y administrar la interfaz gráfica de usuario.


import tkinter as tk

Crear la Ventana de la Calculadora

Después, creamos la ventana principal de la calculadora utilizando la clase Tk() de Tkinter.


ventana = tk.Tk()
ventana.title("Calculadora")

Crear la Caja de Entrada

A continuación, creamos una caja de entrada donde se mostrarán los números y resultados. Utilizamos la clase Entry() y el método grid() para posicionarlo en la ventana.


entrada = tk.Entry(ventana, width=20)
entrada.grid(row=0, column=0, columnspan=4)

Definir Funciones para las Operaciones

Ahora definimos dos funciones. La función boton_click() maneja los clics en los botones numéricos y operacionales, y la función calcular() evalúa las expresiones y muestra el resultado en la caja de entrada.


def boton_click(valor):
    entrada.insert(tk.END, valor)

def calcular():
    try:
        resultado = eval(entrada.get())
        entrada.delete(0, tk.END)
        entrada.insert(0, resultado)
    except:
        entrada.delete(0, tk.END)
        entrada.insert(0, "Error")

Crear Botones Numéricos y de Operaciones

Continuamos creando los botones numéricos y de operaciones utilizando un bucle for. Cada botón llama a la función boton_click() con su valor correspondiente.


botones = [
    "7", "8", "9", "/",
    "4", "5", "6", "*",
    "1", "2", "3", "-",
    "0", ".", "=", "+"
]

fila = 1
columna = 0

for boton in botones:
    tk.Button(ventana, text=boton, width=5, height=2, command=lambda valor=boton: boton_click(valor)).grid(row=fila, column=columna)
    columna += 1
    if columna > 3:
        columna = 0
        fila += 1

Iniciar la Ventana

Finalmente, iniciamos la ventana principal utilizando el método mainloop().


ventana.mainloop()

Paso 3: Explorando Más

Aunque hemos creado una calculadora funcional, hay muchas formas de mejorarla y personalizarla. Puedes agregar más funciones, como operaciones trigonométricas o cálculos más avanzados. Además, podrías mejorar la apariencia de la interfaz gráfica añadiendo colores y diseño.

Si quieres llevar las capacidades de tu calculadora más allá, podrías considerar el uso de la librería externa math para agregar funciones matemáticas más complejas, como raíces cuadradas y exponenciales.

Paso 4: Código para Copiar y Pegar

A continuación, tienes el código completo que puedes copiar y pegar en tu editor de Python:


import tkinter as tk

ventana = tk.Tk()
ventana.title("Calculadora")

entrada = tk.Entry(ventana, width=20)
entrada.grid(row=0, column=0, columnspan=4)

def boton_click(valor):
    entrada.insert(tk.END, valor)

def calcular():
    try:
        resultado = eval(entrada.get())
        entrada.delete(0, tk.END)
        entrada.insert(0, resultado)
    except:
        entrada.delete(0, tk.END)
        entrada.insert(0, "Error")

botones = [
    "7", "8", "9", "/",
    "4", "5", "6", "*",
    "1", "2", "3", "-",
    "0", ".", "=", "+"
]

fila = 1
columna = 0

for boton in botones:
    tk.Button(ventana, text=boton, width=5, height=2, command=lambda valor=boton: boton_click(valor)).grid(row=fila, column=columna)
    columna += 1
    if columna > 3:
        columna = 0
        fila += 1

ventana.mainloop()

Paso 5: Resumen y Posibilidades

En este tutorial, has aprendido a crear una calculadora con interfaz gráfica utilizando la librería Tkinter en Python. Hemos explorado cómo importar librerías, crear ventanas y cajas de entrada, definir funciones para operaciones y crear botones interactivos.

Este proyecto es solo el comienzo. Puedes aplicar los conocimientos adquiridos para crear aplicaciones más avanzadas y funcionales. Por ejemplo, podrías construir calculadoras específicas para cálculos científicos, financieros o de ingeniería. Además, aprender sobre la librería math y otras librerías externas te permitirá añadir más funcionalidades y complejidad a tus proyectos.