[PyQt] PyQwt Signals [Was: Old vs New Signals]

John Floyd jfloyd at bigpond.net.au
Fri Jul 13 11:13:32 BST 2012


On Thu, 12 Jul 2012 13:25:11 Phil Thompson wrote:
> Taking your examples in turn...
> 
> self.picker.connect(self.picker, SIGNAL('selected(QwtPolygon)'),
> self.slotQwtPolygon)
> 
> ...this works as expected.
> 
> self.picker.selected[QwtPolygon](self.slotQwtPolygon)
> 
> ...this doesn't work because...
> 
> - PyQwt does not expose QwtPolygon as a Python type
> - selected(QwtPolygon) is a signal of QwtPicker, not QwtPlotPicker
> - the call to connect() is missing
> 
> The following is correct...
> 
> super(QwtPlotPicker, self.picker).selected.connect(self.slotQwtPolygon)
> 
> The following is also correct and would be needed if QwtPicker.selected()
> was overloaded and the 'QwtPolygon' overload was not the default...
> 
> super(QwtPlotPicker, self.picker).selected['QwtPolygon'].connect(
>         self.slotQwtPolygon)
> 
> These work because PyQwt has told sip how to convert a C++ QwtPolygon to a
> Python object.
> 
> The last two examples...
> 
> self.picker.connect(self.picker,
>         SIGNAL('selected(QwtArray<QwtDoublePoint>)'), self.slotQwtArray)
> 
> ...and...
> 
> self.picker.selected['QwtArray<QwtDoublePoint>'].connect(self.slotQwtArray)
> 
> ...can never work because PyQwt hasn't told sip how to convert a C++
> QwtArray<QwtDoublePoint> to a Python object. This is a PyQwt bug. It
> should provide a %MappedType for QwtArray<QwtDoublePoint>.
> 
> Phil

Thanks Phil,

Is part of the problem with QwtPolygon linked to the fact that in the qt4 
version of the code that the c++ QwtPolygon definition is a typedef?

typedef QPolygon  QwtPolygon

yet QPolygon is defined as a Python type.

This a also the case for QwtArray<QwtDoublePoint> because QwtDoublePoint is 
also typedef'ed 

typedef QPointF QwtDoublePoint

and again QwtArray<QPointF> is defined as a python type though a mapped type.

Do we have to create separate definitions for all the typedef'ed variables as 
well in sip?  

Regards
John

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20120713/74aeb2fd/attachment.html>


More information about the PyQt mailing list