def gcall ( func , * args , * * kwargs ) : def idle ( ) : with gdk . lock : return bool ( func ( * args , * * kwargs ) ) return gobject . idle_add ( idle )
python gtk not refreshing
Calls a function with the given arguments inside Gtk s main loop . Example :: gcall ( lbl . set_text foo )
def gcall(func, *args, **kwargs):
    """
    Calls a function, with the given arguments inside Gtk's main loop.
    Example::
        gcall(lbl.set_text, "foo")

    If this call would be made in a thread there could be problems, using
    it inside Gtk's main loop makes it thread safe.
    """
    def idle():
        with gdk.lock:
            return bool(func(*args, **kwargs))
    return gobject.idle_add(idle)