reloj libreria hacer cronometro como python user-interface tkinter

hacer - libreria time python



¿Cómo crear un temporizador usando tkinter? (4)

Acabo de crear un temporizador simple utilizando el patrón MVP (sin embargo, puede ser excesivo para ese proyecto simple). Tiene salida, inicio / pausa y un botón de detención. La hora se muestra en formato HH: MM: SS. El conteo de tiempo se implementa utilizando un hilo que se ejecuta varias veces por segundo y la diferencia entre el tiempo que el temporizador comenzó y el tiempo actual.

Código fuente en github

Necesito codificar un programa con la biblioteca tkinter de Python.

Mi problema principal es que no sé cómo crear un temporizador o un reloj como hh:mm:ss .

Necesito que se actualice solo (eso es lo que no sé cómo hacer).


Ejemplo de reloj de Python3 usando frame.after () en lugar de la aplicación de nivel superior. También muestra la actualización de la etiqueta con StringVar ()

#!/usr/bin/env python3 # Display UTC. # started with https://docs.python.org/3.4/library/tkinter.html#module-tkinter import tkinter as tk import time def current_iso8601(): """Get current date and time in ISO8601""" # https://en.wikipedia.org/wiki/ISO_8601 # https://xkcd.com/1179/ return time.strftime("%Y%m%dT%H%M%SZ", time.gmtime()) class Application(tk.Frame): def __init__(self, master=None): tk.Frame.__init__(self, master) self.pack() self.createWidgets() def createWidgets(self): self.now = tk.StringVar() self.time = tk.Label(self, font=(''Helvetica'', 24)) self.time.pack(side="top") self.time["textvariable"] = self.now self.QUIT = tk.Button(self, text="QUIT", fg="red", command=root.destroy) self.QUIT.pack(side="bottom") # initial time display self.onUpdate() def onUpdate(self): # update displayed time self.now.set(current_iso8601()) # schedule timer to call myself after 1 second self.after(1000, self.onUpdate) root = tk.Tk() app = Application(master=root) root.mainloop()


Las ventanas raíz de Tkinter tienen un método llamado after cual se puede utilizar para programar una función a la que llamar después de un período de tiempo determinado. Si esa función se llama after configurar un evento recurrente automático.

Aquí hay un ejemplo de trabajo:

# for python 3.x use ''tkinter'' rather than ''Tkinter'' import Tkinter as tk import time class App(): def __init__(self): self.root = tk.Tk() self.label = tk.Label(text="") self.label.pack() self.update_clock() self.root.mainloop() def update_clock(self): now = time.strftime("%H:%M:%S") self.label.configure(text=now) self.root.after(1000, self.update_clock) app=App()

Tenga en cuenta que after no garantiza que la función se ejecute exactamente a tiempo. Solo programa el trabajo para que se ejecute después de un período de tiempo determinado. Si la aplicación está ocupada, puede haber un retraso antes de que se llame ya que Tkinter tiene un solo subproceso. El retraso generalmente se mide en microsegundos.


from tkinter import * import time tk=Tk() def clock(): t=time.strftime(''%I:%M:%S'',time.localtime()) if t!='''': label1.config(text=t,font=''times 25'') tk.after(100,clock) label1=Label(tk,justify=''center'') label1.pack() clock() tk.mainloop()