[PyQt] PyQwt Signals [Was: Old vs New Signals]
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)'),
> ...this works as expected.
> ...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(
> These work because PyQwt has told sip how to convert a C++ QwtPolygon to a
> Python object.
> The last two examples...
> SIGNAL('selected(QwtArray<QwtDoublePoint>)'), 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>.
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
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?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the PyQt