Python Calculator with CustomTkinter (Dark and Light mode) – No Talking

Posted by

Calculadora en Python con CustomTkinter (Dark y Light mode)

Calculadora en Python con CustomTkinter (Dark y Light mode)

En este artículo, vamos a hablar sobre cómo crear una calculadora en Python utilizando la biblioteca CustomTkinter y añadiendo la funcionalidad de cambiar entre Dark mode y Light mode.

Introducción

CustomTkinter es una biblioteca que nos permite personalizar los widgets estándar de Tkinter en Python. Con esta biblioteca, podemos crear una interfaz de usuario más atractiva y moderna para nuestras aplicaciones.

Código de la Calculadora

A continuación, se muestra el código Python para la calculadora:

import tkinter as tk
from tkinter import ttk

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

        self.entry = ttk.Entry(self.root)
        self.entry.grid(row=0, column=0, columnspan=4)

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

        row = 1
        col = 0
        for button in buttons:
            action = lambda x=button: self.calculate(x)
            ttk.Button(self.root, text=button, command=action).grid(row=row, column=col)
            col += 1
            if col > 3:
                col = 0
                row += 1

    def calculate(self, key):
        if key == '=':
            self.evaluate()
        elif key == 'C':
            self.entry.delete(0, tk.END)
        else:
            self.entry.insert(tk.END, key)

    def evaluate(self):
        try:
            result = str(eval(self.entry.get()))
            self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, result)
        except:
            self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, 'Error')

root = tk.Tk()
app = CalculatorApp(root)
root.mainloop()

Modo Oscuro y Modo Claro

Para añadir la funcionalidad de cambiar entre Modo Oscuro y Modo Claro, podemos hacer uso de CustomTkinter para personalizar los colores de la calculadora. A continuación, se muestra un ejemplo de cómo cambiar entre Modo Oscuro y Modo Claro:

# Cambiar al Modo Oscuro
root.configure(bg='#333333')
entry.configure(bg='#222222', fg='white')
for button in buttons:
    button.configure(bg='#666666', fg='white')

# Cambiar al Modo Claro
root.configure(bg='white')
entry.configure(bg='white', fg='black')
for button in buttons:
    button.configure(bg='lightgray', fg='black')

Ahora puedes disfrutar de una calculadora en Python con CustomTkinter que te permite cambiar entre Modo Oscuro y Modo Claro. ¡Diviértete explorando esta biblioteca y personalizando tus aplicaciones!

0 0 votes
Article Rating
9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@MagnoEfren
5 months ago

Puedes ver mas videos aquí ! 👇

https://www.youtube.com/c/MagnoEfren/playlists

@koshiiiuwu_
5 months ago

Llegue a este video buscando una forma de implementar una calculadora a una aplicación que estoy haciendo y logré resolver un problema que tenía!!
En mi aplicación estaba usando un CTkTextbox para ingresar los datos y al momento de hacer las operaciones matemáticas por alguna razón había un error, ahora veo que debo usar CTkEntry!

@gamermtzjrqn
5 months ago

es buen video pero lamentablemente esta sin explicacion el video y para alguien que esta aprendiendo el video es malisimo

@user-xr6sk5be8n
5 months ago

Buenas Amigo, es bastante bueno lo que logras con tkiinter Felicidades. Serías igual o mejor manejando FLET, hay muchas cosas interesantes, también utiliza python para todo. Viendo tu contenido logré hacer una app en flet (con el ejecutable ) y con ella me descargo tus video para estudiarlos mejor (despúes del respectivo like claro está). Saludos.

@jaxanjaxan8195
5 months ago

Que bueno que te encontre, casi no hay contenido como el tuyo de manera tan grafica en Youtube de Python.

@Skrollex74
5 months ago

excelente video
un proyecto mas para tu portafolio
exitos brooo

@pablo20237
5 months ago

Thank you sir

@nenenel5608
5 months ago

Hola, me gustaría que desarrollaramos algun proyecto en conjunto, no tengo pensado alguno en especial pero creo que sería interesante, que dices?

@mechatronics-nikolatesla866
5 months ago

Excelente contenido @magnoefren.