¿No puede actualizar el tiempo en esta GUI en tiempo real?

2020-02-15 python tkinter
import tkinter as tk
from tkinter import ttk
from time import strftime
try:
    from ctypes import windll
    windll.shcore.SetDpiAwareness(1)
except Exception as e:
    pass


class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title('Digital Clock')
        self.geometry('290x70')
        self.resizable(False, False)

        def tick():
            set_time = strftime('%H:%M:%S:%p')
            clock_label.config(text=set_time)

        clock_label = ttk.Label(self, font=('calibri', 40, 'bold'),
                                background='yellow', foreground='black',
                                )
        clock_label.grid(row=0, column=0)
        clock_label.after(100, tick)


if __name__ == '__main__':
    digiclock = App()
    digiclock.mainloop()`
```

El tiempo posterior a la configuración no se actualiza después de usar el método after en la etiqueta. ¿Por qué no lo está haciendo y cómo corregirlo?

Aquí puede ver que no aparece nada en la ventana mientras que después del método utilizado dentro del método tick ()

Answers

Hmm, no sé sobre esto. Después () Nunca intenté hacer una gui de reloj. Pero después de leer el comentario de jasonharper y acw1668 y algunas búsquedas en google , debe colocar la misma línea de código clock_label.after (100, tick) y también en la función tick.

Lo entendí ... no estaba llamando a la función tick en la clase de la aplicación después de hacerlo, funcionó ... pero después de esto, el formato del reloj cambió de 12 horas a 24 horas ... ¿por qué sucedió eso?

Related