2009-08-20 22 views

cevap

14

Bir işlevi düzenli olarak çağırmak için glib.timeout_add(interval, callback, ...)'u kullanabilirsiniz.

Eğer işlev True döndürürse, aralıktan sonra tekrar çağrılır; Eğer işlev Yanlış döndürürse tekrar çağrılmaz. İşte

bir widget en olay gösterdikten sonra bir zaman aşımı ekleyerek kısa bir örnektir: süresi bir saniyenin onda birine kadar tam olarak kritik değilse

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 aslında bir bağlantı eklemiş çünkü resmi belgeler. İnsanlar bunu daha sık yapmalı. –

9

, kullanmak

glib.timeout_add_seconds(5, ..) 
Yukarıdaki gibi

.

timeout_add_seconds CPU açılışları azaltılması (zaman aşımı reocurring özellikle eğer varsa) ve save energy for the planet uzun vadede, sistem diğer olaylara zaman aşımı uyum sağlar (!)

İlgili konular