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
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt