Introducción
En este proyecto, crearemos una aplicación de reloj digital utilizando Python y la biblioteca Tkinter. Este reloj mostrará tanto la hora actual como la fecha, y permitirá al usuario alternar entre los formatos de hora de 12 horas y 24 horas. Dividiremos el código en múltiples pasos, comenzando con la instalación de las bibliotecas necesarias y terminando con la ejecución del proyecto.
👀 Vista previa

🎯 Tareas
En este proyecto, aprenderá:
- Cómo instalar las bibliotecas necesarias para construir un reloj digital con Python.
- Cómo configurar el proyecto creando el script de Python e importando las bibliotecas necesarias.
- Cómo definir una función para actualizar y mostrar la hora y la fecha actuales.
- Cómo crear una función para alternar entre los formatos de hora de 12 horas y 24 horas.
- Cómo crear la ventana principal de la aplicación y configurar los estilos de la interfaz gráfica de usuario (GUI).
- Cómo crear y colocar los componentes de la GUI en la ventana principal.
- Cómo iniciar el reloj llamando a las funciones necesarias y ejecutando el bucle principal de la GUI.
🏆 Logros
Después de completar este proyecto, podrá:
- Instalar bibliotecas utilizando pip, el administrador de paquetes de Python.
- Utilizar la biblioteca Tkinter para crear interfaces gráficas de usuario en Python.
- Formatear y mostrar la hora y la fecha en Python.
- Personalizar la apariencia de los componentes de la GUI utilizando estilos temáticos.
- Crear botones con diferentes textos y funcionalidades.
- Ejecutar un script de Python y ejecutar un bucle principal de la GUI.
Instalar las bibliotecas necesarias
Antes de comenzar a construir nuestro reloj digital con Python, debemos asegurarnos de tener instaladas las bibliotecas necesarias. En este paso, instalaremos las bibliotecas necesarias utilizando pip, el administrador de paquetes de Python.
sudo apt update
sudo apt-get install python3-tk -y
pip install ttkthemes
Estas son las funciones de estas bibliotecas:
tkinter: Esta biblioteca proporciona las herramientas y componentes necesarios para crear interfaces gráficas de usuario (GUIs) en Python. Es una biblioteca estándar para el desarrollo de GUIs.ttkthemes: Esta biblioteca nos permite utilizar estilos temáticos y personalizar la apariencia de nuestros componentes de Tkinter para dar a nuestro reloj digital un diseño visualmente atractivo.
Puedes instalar estas bibliotecas utilizando los comandos anteriores en tu terminal o línea de comandos. Una vez instaladas, estás listo para continuar con la construcción del reloj digital según se describe en los siguientes pasos.
Ahora, crea un nuevo archivo de Python llamado digital_clock.py y dile que lo abra en tu editor de código preferido.
cd ~/project
touch digital_clock.py
Configurando el proyecto
Primero, configuraremos el proyecto creando el script de Python necesario e importando las bibliotecas requeridas.
## Import necessary libraries
import tkinter as tk
from tkinter import ttk
from ttkthemes import ThemedStyle
from time import strftime
En este paso:
- Importamos la biblioteca
tkinterpara crear la interfaz gráfica de usuario (GUI). - Importamos componentes específicos (
ttk,ThemedStyle) detkinterpara un estilo avanzado. - Importamos la función
strftimedel módulotimepara formatear y mostrar la hora.
Definir la función de visualización del tiempo
A continuación, definamos una función para actualizar y mostrar la hora y la fecha actuales.
def time():
current_time_format = "%H:%M:%S" if is_24_hour_format else "%I:%M:%S %p"
current_time = strftime(current_time_format)
current_date = strftime("%A, %B %d, %Y")
label_time.config(text=current_time)
label_date.config(text=current_date)
label_time.after(1000, time)
En este paso:
- Creamos una función llamada
time()que actualiza las etiquetas de hora y fecha. - La variable
current_time_formatdetermina si se utiliza un formato de hora de 24 horas o de 12 horas en función de la banderais_24_hour_format. - Utilizamos la función
strftimepara obtener la hora y la fecha actuales en el formato deseado. - Las etiquetas (
label_timeylabel_date) se actualizan con la hora y la fecha actuales, respectivamente. - La línea
label_time.after(1000, time)programa la funcióntimepara que se ejecute cada 1000 milisegundos (1 segundo) para actualizar la hora de forma continua.
Alternar el formato de tiempo
Vamos a crear una función que permita al usuario alternar entre los formatos de hora de 12 horas y 24 horas.
def toggle_time_format():
global is_24_hour_format
is_24_hour_format = not is_24_hour_format
time_format_button.config(text="12 Hour" if is_24_hour_format else "24 Hour")
En este paso:
- Definimos una función llamada
toggle_time_format()que alterna la banderais_24_hour_formatentreTrueyFalse. - La etiqueta del botón de formato de hora (
time_format_button) se actualiza para mostrar "12 Hour" o "24 Hour" según el formato actual.
Crear la ventana principal de la aplicación
Ahora, vamos a crear la ventana principal de la aplicación y establecer su título y dimensiones.
root = tk.Tk()
root.title("Digital Clock")
root.geometry("400x250")
En este paso:
- Creamos la ventana principal de la aplicación utilizando
tk.Tk(). - Establecemos el título de la ventana en "Digital Clock".
- Las dimensiones de la ventana se establecen en 400x250 píxeles.
Configurar los estilos de la interfaz gráfica de usuario
Configure los estilos para las etiquetas, botones y marcos para personalizar la apariencia del reloj.
style = ThemedStyle(root)
style.set_theme("plastik")
style.configure(
"TLabel", foreground="#FF5733", background="#333333", font=("calibri", 48, "bold")
)
style.configure(
"TButton", foreground="#FF5733", background="#333333", font=("calibri", 10, "bold")
)
style.configure("TFrame", background="#333333")
En este paso:
- Creamos un estilo temático para los componentes de la GUI para aplicar una apariencia y sensación coherentes.
- Se personaliza el color del texto de la etiqueta, el color de fondo y la fuente.
- Se personaliza el color del texto del botón, el color de fondo y la fuente.
- Se personaliza el color de fondo del marco.
Crear y colocar componentes de interfaz gráfica de usuario
Ahora, vamos a crear y colocar los componentes de la GUI en la ventana principal.
frame = ttk.Frame(root, style="TFrame", padding=20)
frame.place(relx=0.5, rely=0.5, anchor="center")
label_time = ttk.Label(frame, font=("calibri", 48, "bold"))
label_time.pack()
label_date = ttk.Label(frame, font=("calibri", 16))
label_date.pack()
is_24_hour_format = True
time_format_button = ttk.Button(
frame, text="12 Hour", command=toggle_time_format, style="TButton"
)
time_format_button.pack(pady=20)
En este paso:
- Creamos un marco (
frame) con el estilo y el relleno especificados. - El marco se centra en la ventana principal.
- Se crean dos etiquetas (
label_timeylabel_date) para mostrar la hora y la fecha. - Se establece un valor inicial de
Trueparais_24_hour_format. - Se crea un botón (
time_format_button) con el texto "12 Hour" y la funcióntoggle_time_formatse establece como su comando. - Todos los componentes se empaquetan y se colocan en el marco.
Iniciar el reloj
Finalmente, vamos a iniciar el reloj llamando a la función time y ejecutando el bucle principal de la GUI.
time()
root.mainloop()
En este paso:
- Llamamos a la función
time()para iniciar el reloj. - El método
root.mainloop()inicia el bucle principal de la GUI, lo que permite que la aplicación se ejecute y se actualice en tiempo real.
Ahora, ejecutemos la aplicación del reloj digital.
cd ~/project
python digital_clock.py

Resumen
En este proyecto, hemos creado una aplicación de reloj digital utilizando Python y Tkinter. Hemos dividido el proceso en varios pasos, incluyendo la configuración del proyecto, la definición de funciones para la visualización del tiempo y el cambio de formato, la configuración de los estilos de la interfaz gráfica de usuario (GUI), la creación de componentes de la GUI y la ejecución de la aplicación del reloj. Este reloj digital muestra la hora y la fecha actuales y permite a los usuarios cambiar entre los formatos de hora de 12 horas y 24 horas.



