[PyQt] New vs new signals - signatures

Phil Thompson phil at riverbankcomputing.com
Fri Jun 29 08:52:00 BST 2012


On Fri, 29 Jun 2012 17:22:51 +1000, John Floyd <jfloyd at bigpond.net.au>
wrote:
> The question relates to the signatures used to connect overloaded
signals.
> 
> What do you use for signature in the new signals.  I have tried using
the
> same 
> arguments that are specified in the old method but does not work.
> 
> Eg an example from pyqwt
> 
> old method 
> 
> 	self.picker.connect(self.picker, SIGNAL('selected(const QwtPolygon&)'),

>       self.slotter)
> 
> have tried 
> 	self.picker.selected[QwtPolygon].connect(self.slotter)
> and 
> 	self.picker.selected['QwtPolygon'].connect(self.slotter)  
> with no success.

Define "no success".

> the user docs does suggest "A type is either a Python type object or a
> string 
> that is the name of a C++ type"
> 
> In this regard I have notices that in the code generated from the sip
> files, 
> the pyqt4QtSignal defintion is 
> 
> 	selected(QwtPolygon)
> 
> This is particularly confusing where for mappedtypes from a template
where
> the 
> c++ variable is QArray<QwtDoublePoint> which is in the c++ signature
> whilst 
> the python 'equivalent' is QwtQArrayQwtDoublePoint.
> 
> Clarification would be very useful.  At the moment I am not sure if
there
> is a 
> coding problem (mine or at the sip end) or just my ignorance.

They should be interchangeable. In the current of PyQt a bound signal has
a "signal" attribute that is the corresponding C++ signal so you can check
what signature is actually being used.

Phil


More information about the PyQt mailing list