如何显示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