[pygtk] How can I inherit __gsignals__ attribute from a class?

2009-06-01 Thread Iven Day
Hi,
I wrote a parent class like this:

class PluginObject(gobject.GObject):
__gsignals__ = {
"change-ui": (gobject.SIGNAL_RUN_FIRST,
  gobject.TYPE_NONE,
 (gobject.TYPE_PYOBJECT, gobject.TYPE_STRING,)),
   }
def __init__(self):
gobject.GObject.__init__(self)

, and a child class like this:

class PluginComboBox(gtk.ComboBox, PluginObject):
def __init__(self, input_dict):
PluginObject.__init__(self)
gtk.ComboBox.__init__(self)
...
self.connect("changed", self.changed_cb, input_dict)
self.set_active(0)
def changed_cb(self, widget, data = None):
model = self.get_model()
index = self.get_active()
self.emit("change-ui", data.values, data[model[index][0]])

, but I got a

TypeError: : unknown signal name: change-ui

It seems __gsignals__ isn't inherited, how can I get it work?
Sorry for my english.

___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/


Re: [pygtk] How can I inherit __gsignals__ attribute from a class?

2009-06-02 Thread Iven Day
It seems __gsignals__ only works as user-defined signals in pygtk when
it is defined as a class attribute, isn't it?

在 2009-06-01一的 09:11 -0700,Chris Camacho写道:
> shouldn't you be setting set __gsignals__ in PluginObject.__init__ ?
>  
> --- On Mon, 1/6/09, Iven Day  wrote:
> 
> > From: Iven Day 
> > Subject: [pygtk] How can I inherit __gsignals__ attribute from a class?
> > To: pygtk@daa.com.au
> > Date: Monday, 1 June, 2009, 4:52 PM
> > Hi,
> > I wrote a parent class like this:
> > 
> > class PluginObject(gobject.GObject):
> > __gsignals__ = {
> > "change-ui":
> > (gobject.SIGNAL_RUN_FIRST,
> >
> >   gobject.TYPE_NONE,
> >
> >  
> >(gobject.TYPE_PYOBJECT,
> > gobject.TYPE_STRING,)),
> >
> >}
> > def __init__(self):
> > gobject.GObject.__init__(self)
> > 
> > , and a child class like this:
> > 
> > class PluginComboBox(gtk.ComboBox, PluginObject):
> > def __init__(self, input_dict):
> > PluginObject.__init__(self)
> > gtk.ComboBox.__init__(self)
> > ...
> > self.connect("changed",
> > self.changed_cb, input_dict)
> > self.set_active(0)
> > def changed_cb(self, widget, data = None):
> > model = self.get_model()
> > index = self.get_active()
> > self.emit("change-ui",
> > data.values, data[model[index][0]])
> > 
> > , but I got a
> > 
> > TypeError:  > (GtkComboBox at
> > 0x26e8010)>: unknown signal name: change-ui
> > 
> > It seems __gsignals__ isn't inherited, how can I get it
> > work?
> > Sorry for my english.
> > 
> > ___
> > pygtk mailing list   pygtk@daa.com.au
> > http://www.daa.com.au/mailman/listinfo/pygtk
> > Read the PyGTK FAQ: http://faq.pygtk.org/
> > 
> 
> 
>   

___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Re: [pygtk] How can I inherit __gsignals__ attribute from a class?

2009-06-02 Thread Iven Day
I just tried, but it doesn't work. I think __gsignals__ must be a class
attribute so that signals within it could be emited, but not data
attribute(self.xxx).
在 2009-06-02二的 02:11 -0700,Chris Camacho写道:
> self.__gsignals__=
> 
> how is it not a class attribute doing that
> 
> --- On Tue, 2/6/09, Iven Day  wrote:
> 
> > From: Iven Day 
> > Subject: Re: [pygtk] How can I inherit __gsignals__ attribute from a class?
> > To: "Chris Camacho" 
> > Cc: pygtk@daa.com.au
> > Date: Tuesday, 2 June, 2009, 10:05 AM
> > It seems __gsignals__ only works as
> > user-defined signals in pygtk when
> > it is defined as a class attribute, isn't it?
> > 
> > 在 2009-06-01一的 09:11 -0700,Chris Camacho写道:
> > > shouldn't you be setting set __gsignals__ in
> > PluginObject.__init__ ?
> > >  
> > > --- On Mon, 1/6/09, Iven Day 
> > wrote:
> > > 
> > > > From: Iven Day 
> > > > Subject: [pygtk] How can I inherit __gsignals__
> > attribute from a class?
> > > > To: pygtk@daa.com.au
> > > > Date: Monday, 1 June, 2009, 4:52 PM
> > > > Hi,
> > > > I wrote a parent class
> > like this:
> > > > 
> > > > class PluginObject(gobject.GObject):
> > > > __gsignals__ = {
> > > > 
> >"change-ui":
> > > > (gobject.SIGNAL_RUN_FIRST,
> > > > 
> >   
> > > >   
> >gobject.TYPE_NONE,
> > > > 
> >   
> > > >  
> > > >(gobject.TYPE_PYOBJECT,
> > > > gobject.TYPE_STRING,)),
> > > > 
> >   
> > > >}
> > > > def __init__(self):
> > > > 
> >gobject.GObject.__init__(self)
> > > > 
> > > > , and a child class like this:
> > > > 
> > > > class PluginComboBox(gtk.ComboBox,
> > PluginObject):
> > > > def __init__(self,
> > input_dict):
> > > > 
> >PluginObject.__init__(self)
> > > > 
> >gtk.ComboBox.__init__(self)
> > > > ...
> > > > 
> >self.connect("changed",
> > > > self.changed_cb, input_dict)
> > > > 
> >self.set_active(0)
> > > > def changed_cb(self,
> > widget, data = None):
> > > > model =
> > self.get_model()
> > > > index =
> > self.get_active()
> > > > 
> >self.emit("change-ui",
> > > > data.values, data[model[index][0]])
> > > > 
> > > > , but I got a
> > > > 
> > > > TypeError:  > 0x7f02c4c20690
> > > > (GtkComboBox at
> > > > 0x26e8010)>: unknown signal name: change-ui
> > > > 
> > > > It seems __gsignals__ isn't inherited, how can I
> > get it
> > > > work?
> > > > Sorry for my english.
> > > > 
> > > > ___
> > > > pygtk mailing list   pygtk@daa.com.au
> > > > http://www.daa.com.au/mailman/listinfo/pygtk
> > > > Read the PyGTK FAQ: http://faq.pygtk.org/
> > > > 
> > > 
> > > 
> > >   
> > 
> > 
> 
> 
>   

___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/