2009-08-20 12 views

Respuesta

14

Puede usar glib.timeout_add(interval, callback, ...) para llamar periódicamente una función.

Si la función devuelve True, se volverá a llamar después del intervalo; si la función devuelve False, no se volverá a llamar.

Aquí es un breve ejemplo de cómo agregar un tiempo de espera después de un widget muestran evento:

import pygtk 
pygtk.require('2.0') 
import gtk 
import glib 

def timer_cb(): 
    print "5 seconds elapsed." 
    return False 

def show_cb(widget, data=None): 
    glib.timeout_add(5000, timer_cb) 

def destroy_cb(widget, data=None): 
    gtk.main_quit() 

def main(): 
    window = gtk.Window(gtk.WINDOW_TOPLEVEL) 

    window.connect("show", show_cb) 

    window.connect("destroy", destroy_cb) 

    window.show() 

    gtk.main() 

if __name__ == "__main__": 
    main() 
+2

1 porque en realidad se ha añadido un enlace a la documentación oficial. La gente debería hacer eso más a menudo. –

9

Si el tiempo no es crítico para ser exactos a la décima de segundo uso,

glib.timeout_add_seconds(5, ..) 

más que arriba.

timeout_add_seconds permite que el sistema para alinear los tiempos de espera a otros eventos, en el largo plazo la reducción de despertadores de CPU (especialmente si el tiempo de espera se reocurring) y save energy for the planet (!)

Cuestiones relacionadas