Skip to content

Debugging gobject signals

September 5, 2007
tags:

Here’s a little snippet I oftenly use to debug GObject signals:

import gobject

def test_signals(obj):
    """Helper function to test signals

     It connects all `obj` signals to a dummy function
    which simply prints out all given arguments.

    Args:
      obj: A ``gobject.GObject``

    """
    if not isinstance(obj, gobject.GObject):
        print "test_signals failed: obj must be a GObject"
        return
    def foo(*args):
        print "Signal %r emitted by %r:" % (args[-2],
                            args[-1].__class__.__name__), args[:-2]
    for signame in gobject.signal_list_names(obj):
        obj.connect(signame, foo, signame, obj)

In fact, it does nothing special, but I found it very useful during development.

Example usage:

from somewhere import test_signals
test_signals(mywidget)

Comments are closed.

%d bloggers like this: