Cómo crear una calculadora en Python utilizando Tkinter y programación orientada a objetos

Posted by


En este tutorial, aprenderás cómo crear una calculadora utilizando Tkinter y programación orientada a objetos (POO) en Python. Tkinter es una biblioteca GUI estándar de Python que se utiliza para crear interfaces de usuario para aplicaciones de escritorio. Utilizaremos POO para organizar y estructurar nuestro código de una manera más modular y mantenible.

Paso 1: Instalar Tkinter
Primero, asegúrate de tener Tkinter instalado en tu sistema. Tkinter viene preinstalado con las versiones estándar de Python, por lo que generalmente no es necesario instalarlo por separado.

Paso 2: Crear una clase Calculadora
Empezaremos creando una clase llamada Calculadora que contendrá los métodos necesarios para realizar operaciones matemáticas básicas como suma, resta, multiplicación y división.

import tkinter as tk

class Calculadora:
    def __init__(self, root):
        self.root = root
        self.root.title("Calculadora")
        self.expresion = ""

        # Pantalla
        self.pantalla = tk.Entry(self.root, width=20, font=('Arial', 16))
        self.pantalla.grid(row=0, column=0, columnspan=4)

        # Botones
        botones = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            'C', '0', '=', '+'
        ]

        row = 1
        col = 0
        for boton_texto in botones:
            tk.Button(self.root, text=boton_texto, width=5, command=lambda text=boton_texto: self.presionar_boton(text)).grid(row=row, column=col)
            col += 1
            if col > 3:
                col = 0
                row += 1

    def presionar_boton(self, texto):
        if texto == 'C':
            self.expresion = ""
        elif texto == '=':
            try:
                resultado = eval(self.expresion)
                self.expresion = str(resultado)
            except:
                self.expresion = "Error"
        else:
            self.expresion += texto
        self.actualizar_pantalla()

    def actualizar_pantalla(self):
        self.pantalla.delete(0, tk.END)
        self.pantalla.insert(0, self.expresion)

if __name__ == '__main__':
    root = tk.Tk()
    app = Calculadora(root)
    root.mainloop()

En este código, creamos una clase Calculadora con un constructor __init__ que inicializa la ventana de la calculadora, la pantalla de la calculadora y los botones necesarios para realizar operaciones matemáticas. También definimos los métodos presionar_boton para manejar la lógica cuando se presiona un botón y actualizar_pantalla para actualizar la pantalla de la calculadora con la expresión actual.

Paso 3: Ejecutar la calculadora
Crea una instancia de la clase Calculadora y ejecuta la aplicación llamando al método mainloop() en la instancia de tkinter root.

if __name__ == '__main__':
    root = tk.Tk()
    app = Calculadora(root)
    root.mainloop()

¡Y listo! Ahora deberías tener una calculadora funcional creada con Tkinter y POO en Python. Puedes personalizar la apariencia de la calculadora ajustando el tamaño de las fuentes, colores y disposición de los elementos según tus preferencias. ¡Diviértete creando y personalizando tu propia calculadora!

0 0 votes
Article Rating
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@clarabarbosa
1 month ago

Buenas noches. Cuando estoy programando la parte del resultado me sale error.
IndentationEror:unexpected unindent

@xavimarin1126
1 month ago

muy bueno el código y con POO…. como siempre excelente

@toreteblanc4234
1 month ago

Muchas gracias compañero. Gran trabajo.

@carlos.-
1 month ago

Buenísimo! muy buena explicación, muchas gracias!!!!!