responsive con reloj y barra de estado dividido en 5 bloques

This commit is contained in:
Juanjo 2024-11-28 17:27:57 +01:00
parent 5ae8189e5e
commit e1b995c1a1
1 changed files with 20 additions and 4 deletions

View File

@ -16,7 +16,7 @@ def update_time(status_bar):
label_text = f"{day_of_week}, {date_str} - {time_str}"
# Actualizar el label (debemos usar `after` para asegurarnos que se actualice en el hilo principal de Tkinter)
barra_estado.after(1000, status_bar.config, {"text": label_text})
label_fecha_hora.after(1000, status_bar.config, {"text": label_text})
# Espera 1 segundo antes de actualizar de nuevo
time.sleep(1)
@ -103,11 +103,27 @@ for i in range(1, 6):
label.pack(pady=10)
# Barra de estado
barra_estado = tk.Label(root, text="Hilo fecha-hora", font=("Helvetica", 16), bd=1, fg="blue", relief="sunken", anchor="w")
barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew")
# Dividir la barra de estado en 4 labels
update_thread = threading.Thread(target=update_time, args=(barra_estado,))
# Usar pack para alinear los labels horizontalmente
label_1 = tk.Label(barra_estado, text="Estado 1", bg="lightgray", anchor="w", width=20)
label_2 = tk.Label(barra_estado, text="Estado 2", bg="lightgray", anchor="w", width=20)
label_3 = tk.Label(barra_estado, text="Estado 3", bg="lightgray", anchor="w", width=20)
label_4 = tk.Label(barra_estado, text="Estado 4", bg="lightgray", anchor="w", width=20)
label_fecha_hora = tk.Label(barra_estado, text="Hilo fecha-hora", font=("Helvetica", 16), bd=1, fg="blue", relief="sunken", anchor="w", width=20)
label_1.pack(side="left", fill="x", expand=True)
label_2.pack(side="left", fill="x", expand=True)
label_3.pack(side="left", fill="x", expand=True)
label_4.pack(side="left", fill="x", expand=True)
label_fecha_hora.pack(side="left", fill="x", expand=True)
# barra_estado.grid(row=1, column=0, columnspan=3, sticky="ew")
update_thread = threading.Thread(target=update_time, args=(label_fecha_hora,))
update_thread.daemon = True # Hacemos el hilo un demonio para que termine con la app
update_thread.start()