[PyQt] how to get all the signal from a QObject/QWidget ? and other Q about signals
Phil Thompson
phil at riverbankcomputing.com
Fri Feb 17 08:51:44 GMT 2012
On Thu, 16 Feb 2012 15:19:18 -0800, Emmanuel Mayssat <emayssat at gmail.com>
wrote:
> I have a widget inside another widget.
>
> 1/
> I would like to have a ~for loop that propagate all the signals of the
> inner widget as if they were emitted by the container widget.
> That is for each signals
> self.connect(myChild, SIGNAL("mySignal()"), self.mySignal.emit())
The above line won't work, use...
self.connect(myChild, SIGNAL("mySignal()"), self.mySignal)
> how can I list the signals that an object has?
Use the standard Qt introspection classes starting with QMetaObject or do
a dir() on the class and look for instances of pyqtSignal.
> 2/
> I understand also that the signals needs to be declared at both levels.
> Is there a way to do that progammatically?
No.
> 3/
> A propos, I noticed that inheritance doesn't seem to pass signal
> definition.
What makes you think that?
> That is
>
> class Lwidget(QWidget):
> mysignal = pyqtSignal()
>
> class LSuperWidget(Lwidget):
> <here the signal needs to be redefined> <-- is there a way to
> avoid this?
Signals are inherited just like any other class attribute.
Phil
More information about the PyQt
mailing list