Foros del Web » Programando para Internet » Python »

Ejecutar una función cada cierto tiempo en wxpython.

Estas en el tema de Ejecutar una función cada cierto tiempo en wxpython. en el foro de Python en Foros del Web. Saludos de nuevo, algo simple pero me tiene totalmente fuera de sitio. tengo una ventana wxpython en la que muestro la fecha y hora actual ...
  #1 (permalink)  
Antiguo 16/08/2011, 18:04
Avatar de wilmermorel  
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Ejecutar una función cada cierto tiempo en wxpython.

Saludos de nuevo, algo simple pero me tiene totalmente fuera de sitio.
tengo una ventana wxpython en la que muestro la fecha y hora actual por medio de un label. la fecha y hora las obtengo de una función. Bueno el caso es que quisiera poder actualizar la hora con una frecuencia de 1Hz (como un reloj cualquiera) sin dejar de interactuar con el usuario, sea llamando cada segundo a la función para obtener la hora o por otro medio mas conveniente.

Última edición por wilmermorel; 16/08/2011 a las 18:12
  #2 (permalink)  
Antiguo 16/08/2011, 21:05
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Ejecutar una función cada cierto tiempo en wxpython.

Puedes usar threads o puedes usar wx.Timer

Aquí un ejemplo con wx.Timer
Código Python:
Ver original
  1. import datetime
  2. import wx
  3.  
  4. class MyFrame(wx.Frame):
  5.    
  6.     def __init__(self, *args, **kwargs):
  7.         wx.Frame.__init__(self, *args, **kwargs)
  8.        
  9.         self.Bind(wx.EVT_CLOSE, self.onClose)
  10.         self.Bind(wx.EVT_TIMER, self.onTimer)
  11.        
  12.         self.timer = wx.Timer(self, -1)
  13.         self.timer.Start(1000)
  14.        
  15.        
  16.     def onClose(self, event):
  17.         self.timer.Stop()
  18.         self.Destroy()
  19.    
  20.     def onTimer(self, event):
  21.         print datetime.datetime.now()
  22.        
  23. app = wx.App(0)
  24. mFrame = MyFrame(None, -1)
  25. mFrame.Show()
  26. app.MainLoop()

Etiquetas: wxpython, threads, 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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 10:00.