On Sun, Sep 27, 2009 at 5:44 PM, Saeed Rasooli <[email protected]> wrote:
> [ a bunch of code ] > > On 9/27/09, samwyse <[email protected]> wrote: > > I writing a pygtk app that will use a plug in architecture. I'm thinking > > about reusing the existing signal mechanisms to trigger the plug-ins at > the > > appropriate times. The tutorials don't go into how to define your own > > signals. Can anyone enlighten me? Thanks. > I seem to be missing something. Here's what I'm doing: import gobject class MyClass(gobject.GObject): def __init__(self): self.__gobject_init__() gobject.type_register(MyClass) gobject.signal_new( 'my-signal', MyClass, gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []) print 'known signals:', gobject.signal_list_names(MyClass) def do_something(self): print 'sending signal' # TypeError: <...>: unknown signal name: my-signal self.emit('my-signal') print 'sent signal' class Plugin(gobject.GObject): def __init__(self, base): self.__gobject_init__() # TypeError: <...>: unknown signal name: my-signal base.connect('my-signal', self.my_handler) def my_handler(self, sender): print 'inside handler' if __name__ == '__main__': print 'glib_version =', gobject.glib_version print 'pygobject_version =', gobject.pygobject_version print 'pygtk_version =', gobject.pygtk_version myobject = MyClass() plugin = Plugin(myobject) myobject.do_something() When I run it, I get this: glib_version = (2, 18, 4) pygobject_version = (2, 14, 2) pygtk_version = (2, 14, 2) known signals: ('my-signal',) Traceback (most recent call last): File "C:\Documents and Settings\...\signals.py", line 30, in <module> plugin = Plugin(myobject) File "C:\Documents and Settings\...\signals.py", line 24, in __init__ base.connect('my-signal', self.my_handler) TypeError: <MyClass object at 0x15094e0 (GObject at 0xfd28c0)>: unknown signal name: my-signal Any ideas? Thanks in advance.
_______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
