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.
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()