Foros del Web » Programando para Internet » Python »

Problema con time.sleep

Estas en el tema de Problema con time.sleep en el foro de Python en Foros del Web. Bueno, en mi script, llega un momento en el cual necesito esperar 1 segundo, ya use el time.sleep, pero tengo un pequeño problema, al usar ...
  #1 (permalink)  
Antiguo 31/01/2013, 16:09
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Problema con time.sleep

Bueno, en mi script, llega un momento en el cual necesito esperar 1 segundo, ya use el time.sleep, pero tengo un pequeño problema, al usar Tkinter, el sleep provoca que la aplicacion entera se pare y Windows me diga "La aplicacion dejo de funcionar".

Queria saber si es posible aplicar el time.sleep a una función especifica, o si hay alguna otra forma de lograrlo, aca les dejo una parte del codigo:

Código:
def temporizador():
	h = tiempo.get()
	mt = h*60
	md = mt/h
	hd = h-1
	cont = Tk()
	cont.title('Contador')
	cont.geometry('100x50+0+0')
	cont.resizable(width=False, height=False)
	root.withdraw()
	while mt>=1: #Necesito que esta condicion se ejecute cada cierto tiempo
		timelbl = Label(cont, text = hd).grid(row=1, column=1)
		timelbl = Label(cont, text = md).grid(row=1, column=2)
		md = md-1
		mt = mt-1
		time.sleep(1) #Pero al usar time.sleep, se paraliza toda la aplicación no solo la condicion
		if md==0:
			md = 60
			hd = hd-1
		cont.update_idletasks()
Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 31/01/2013, 16:17
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 14 años, 4 meses
Puntos: 1329
Respuesta: Problema con time.sleep

Sospecho que el spleep para el thread de tkinter, con lo cuál podrías usar un thread nuevo para hacer lo que necesitas.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 01/02/2013, 08:02
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con time.sleep

Pues vas a necesitar crear un hilo para la interfaz, y otro en el que hagas lo que tenés que hacer, tal y como menciona Carlangueitor
  #4 (permalink)  
Antiguo 01/02/2013, 10:41
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 17 años, 4 meses
Puntos: 1360
Respuesta: Problema con time.sleep

Por lo que veo estas tratando de implementar un timer, cuando tkinter ya tiene uno por defecto.

Código Python:
Ver original
  1. # for python 3.x use 'tkinter' rather than 'Tkinter'
  2. import Tkinter as tk
  3. import time
  4.  
  5. class App():
  6.     def __init__(self):
  7.         self.root = tk.Tk()
  8.         self.label = tk.Label(text="")
  9.         self.label.pack()
  10.         self.update_clock()
  11.         self.root.mainloop()
  12.  
  13.     def update_clock(self):
  14.         now = time.strftime("%H:%M:%S")
  15.         self.label.configure(text=now)
  16.         # Se llama asi mismo después de 1 segundo
  17.         self.root.after(1000, self.update_clock)
  18.  
  19. app=App()
  20. app.mainloop()

Fuente: StackOverflow

Etiquetas: sleep, time
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:44.