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

Jan*_*nar 11 python time pygtk function

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

Kar*_*and 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()
Run Code Online (Sandbox Code Playgroud)

  • +1,因为您实际上已添加了官方文档的链接.人们应该更频繁地这样做. (2认同)

u0b*_*6ae 9

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

glib.timeout_add_seconds(5, ..)
Run Code Online (Sandbox Code Playgroud)

如上所述.

timeout_add_seconds允许系统将超时与其他事件对齐,从长远来看减少CPU唤醒(特别是如果超时重新启动)并为行星节省能量(!)