运行功能5秒示pygtk的插件后(Running function 5 seconds after

2019-07-02 17:26发布

如何显示pygtk的插件后运行功能5秒了吗?

Answer 1:

您可以使用glib.timeout_add( 区间回调 ,...)定期调用函数。

如果函数返回true,则这将是时间间隔后再次调用; 如果函数返回false,那么它不会被再次调用。

以下是添加Widget的演出活动后超时的一个简单的例子:

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


Answer 2:

如果时间不是关键是精确到第二,利用第十

glib.timeout_add_seconds(5, ..)

其他同上。

timeout_add_seconds允许系统对准超时其他事件,从长远来看,减少CPU唤醒(尤其是如果超时reocurring)和节约能源的星球 (!)



文章来源: Running function 5 seconds after pygtk widget is shown