显示pygtk小部件后5秒运行功能

时间:2009-08-20 21:39:46

标签: python function time pygtk

如何在显示pygtk小部件后5秒运行功能?

2 个答案:

答案 0 :(得分:14)

您可以使用 glib.timeout_add(interval, callback, ...) 定期调用函数。

如果函数返回 True ,则在间隔后将再次调用它;如果函数返回 False ,则不会再次调用它。

以下是在小部件的 show 事件后添加超时的简短示例:

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()

答案 1 :(得分:9)

如果时间对于精确到十分之一秒并不重要,请使用

glib.timeout_add_seconds(5, ..)

如上所述。

timeout_add_seconds 允许系统将超时与其他事件对齐,从长远来看减少CPU唤醒(特别是如果超时重新启动)和save energy for the planet(!)