[PyQt] PyQt4 20070402 and Qt4.3beta

Phil Thompson phil at riverbankcomputing.co.uk
Wed Apr 4 13:26:09 BST 2007


On Wednesday 04 April 2007 11:55 am, Andreas Pakulat wrote:
> On 04.04.07 11:13:02, Phil Thompson wrote:
> > On Wednesday 04 April 2007 10:47 am, Andreas Pakulat wrote:
> > > Hi,
> > >
> > > I'm just wondering wether the current snapshots are meant to be
> > > buildable against 4.3beta (I'm actually using qt-copy from KDE svn
> > > here, but that is 4.3beta).
> > >
> > > I get compilation errors for that on the function QPointF::contains()
> > > which was introduced in 4.3 and takes 2 parameters in C++, however it
> > > seems the generated wrapper only has 2 parameters (PyObject*) instead
> > > of 3 (as the first is probably self).
> > >
> > > If I'm doing a stupid thing here just let me know and I'll live with
> > > 4.2 installed from packages and all the warning messages from KDE...
> >
> > I never support pre-release versions of Qt.
>
> So I guess this is picked up because the sip-stuff includes the header?
> I mean why else would there be this error during compilation of the
> QtGui wrapper:
>
> g++ -c -pipe -fPIC -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB
> -DQT_CORE_LIB -I. -I/home/andreas/python2.5/include/python2.5
> -I/home/andreas/qt-copy/mkspecs/default
> -I/home/andreas/qt-copy/include/QtGui
> -I/home/andreas/qt-copy/include/QtCore -I/home/andreas/qt-copy/include
> -I/usr/X11R6/include -o sipQtGuipart1.o sipQtGuipart1.cpp
> sipQtGuipart1.cpp: In function ‘PyObject*
> meth_QPolygonF_contains(PyObject*, PyObject*)’: sipQtGuipart1.cpp:85753:
> error: no matching function for call to ‘QPolygonF::contains(const
> QPointF&)’ /home/andreas/qt-copy/include/QtGui/qpolygon.h:117: note:
> candidates are: bool QPolygonF::contains(const QPointF&, Qt::FillRule)
> const sip/QtGui/qpolygon.sip: In function ‘int
> slot_QPolygonF___contains__(PyObject*, PyObject*)’:
> sip/QtGui/qpolygon.sip:464: error: no matching function for call to
> ‘QPolygonF::contains(const QPointF&)’
> /home/andreas/qt-copy/include/QtGui/qpolygon.h:117: note: candidates are:
> bool QPolygonF::contains(const QPointF&, Qt::FillRule) const
> sipQtGuipart1.cpp: In function ‘PyObject* meth_QPolygon_contains(PyObject*,
> PyObject*)’: sipQtGuipart1.cpp:87261: error: no matching function for call
> to ‘QPolygon::contains(const QPoint&)’
> /home/andreas/qt-copy/include/QtGui/qpolygon.h:66: note: candidates are:
> bool QPolygon::contains(const QPointF&, Qt::FillRule) const
> sip/QtGui/qpolygon.sip: In function ‘int
> slot_QPolygon___contains__(PyObject*, PyObject*)’:
> sip/QtGui/qpolygon.sip:287: error: no matching function for call to
> ‘QPolygon::contains(const QPoint&)’
> /home/andreas/qt-copy/include/QtGui/qpolygon.h:66: note: candidates are:
> bool QPolygon::contains(const QPointF&, Qt::FillRule) const
>
> I'm not trying to fix PyQt, I'm just trying to understand why it picks
> up new methods from Qt4.3.

It's a bug in the beta. By defining new contains() methods in QPolygon and 
QPolygonF they have hidden the implementations in QVector. They need to add 
their usual using/QT_NO_USING_KEYWORD construct.

Phil



More information about the PyQt mailing list