2009-08-20 10 views

उत्तर

14

आप समय-समय पर फ़ंक्शन को कॉल करने के लिए glib.timeout_add(interval, callback, ...) का उपयोग कर सकते हैं।

यदि फ़ंक्शन True देता है तो इसे अंतराल के बाद फिर से बुलाया जाएगा; अगर फ़ंक्शन झूठी वापस लौटाएगा तो उसे दोबारा नहीं बुलाया जाएगा।

यहाँ के बाद समय समाप्त जोड़ने की एक छोटी सी उदाहरण है एक विजेट के दिखाने घटना:

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 आधिकारिक दस्तावेज। लोगों को अक्सर ऐसा करना चाहिए। –

9

समय एक दूसरे के दसवें करने के लिए सटीक होना करने के लिए महत्वपूर्ण नहीं है, तो का उपयोग

glib.timeout_add_seconds(5, ..) 

उपरोक्त के रूप में अन्य।

timeout_add_seconds, लंबे समय में और सीपीयू wakeups को कम करने (खासकर अगर समय समाप्ति reocurring है) save energy for the planet क्योंकि आप वास्तव में करने के लिए एक लिंक जोड़ा है प्रणाली अन्य घटनाओं के लिए समय समाप्ति संरेखित भी कर सकते (!)

संबंधित मुद्दे