[pyar] wxpython, cambiar los botones de la ventana

Alejandro Santos listas en alejolp.com
Mie Jun 16 16:08:21 ART 2010


On 16/06/10 15:48, Aldo Vizcaino wrote:
>
>
>     Mientras hacés el time.sleep() no está corriendo el event loop. La
>     ventana no
>     se refresca, no pasa nada. Usá un timer de wx en vez de time.sleep.
>
>
> Hola Roberto,
>
> Gracias... igualmente, no logro encontrar la función correcta que haga
> eso :(
> he probado con wx.Sleep(10), y con wx.Timer.Start(wx.Timer(),1000,True)
>
> seguiré buscando a ver que encuentro :D
>

Aldo,

Un Timer es un objeto que dispara eventos cada cierto tiempo. Hay dos 
formas de usarlo.

En los dos casos la variable "panel" es un Panel de WX y el print se 
ejecuta cada 1 segundo (1000ms):

a) Hacer una subclase de la clase Timer y redefinir el método Notify:

class ImprimirMensaje(wx.Timer):
     def Notify(self):
         print "evento disparado"

# Crear la instancia del objeto Timer
t = ImprimirMensaje(panel, wx.NewId())
t.Start(1000)

b) Crear un Timer generico y escuchar los eventos EVT_TIMER:

def callback():
     print "evento disparado"

t = Timer(panel, wx.NewId())
t.Start(1000)
panel.Bind(wx.EVT_TIMER, callback)

Saludos,

-- 
Alejandro Santos
http://www.alejolp.com.ar



More information about the pyar mailing list