[PyQt] PyQt5 Segmentation Fault for QtQuick List Properties

Louis Simons lousimons at gmail.com
Sat Nov 5 12:58:54 GMT 2016


I installed the latest SIP snapshot (4.19.dev1610281521), but when I try to
compile the latest PyQt5 snapshot, I get the following compilation error.
I found a reference to it possibly (though unlikely) being related to
building on an old GCC (4.5, https://sourceforge.net/p/kmymoney2/bugs/401/),
but I'm currently on GCC 5.4.0.

In file included from
/usr/include/x86_64-linux-gnu/qt5/QtGui/qsurfaceformat.h:37:0,
                 from
/usr/include/x86_64-linux-gnu/qt5/QtGui/QSurfaceFormat:1,
                 from
/usr/include/x86_64-linux-gnu/qt5/QtGui/qopenglcontext.h:45,
                 from
/usr/include/x86_64-linux-gnu/qt5/QtGui/QOpenGLContext:1,
                 from ../qpy/QtGui/qpyopengl_api.h:31,
                 from
/home/lsimons/workspace/PyQt5_gpl-5.7.1.dev1611041415/sip/QtGui/qopenglshaderprogram.sip:332,
                 from sipQtGuiQVector0600QPair24000100QColor.cpp:24:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h: In instantiation of
‘struct QPair<double, QColor>’:
sip/QtCore/qpycore_qvector.sip:304:48:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h:85:8: error: ‘QPair<T1,
T2>::second’ has incomplete type
     T2 second;
        ^
In file included from
/usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType:1:0,
                 from sipAPIQtGui.h:33,
                 from sipQtGuiQVector0600QPair24000100QColor.cpp:24:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1874:1: note: forward
declaration of ‘class QColor’
 QT_FOR_EACH_STATIC_GUI_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER)
 ^
sip/QtCore/qpycore_qvector.sip: In function ‘PyObject*
convertFrom_QVector_0600QPair_2400_0100QColor(void*, PyObject*)’:
sip/QtCore/qpycore_qvector.sip:151:41: error: invalid use of incomplete
type ‘class QColor’
In file included from
/usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType:1:0,
                 from sipAPIQtGui.h:33,
                 from sipQtGuiQVector0600QPair24000100QColor.cpp:24:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1874:1: note: forward
declaration of ‘class QColor’
 QT_FOR_EACH_STATIC_GUI_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER)
 ^
sip/QtCore/qpycore_qvector.sip:157:20: warning: possible problem detected
in invocation of delete operator: [-Wdelete-incomplete]
sip/QtCore/qpycore_qvector.sip:151:17: warning: ‘s2’ has incomplete type
In file included from
/usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType:1:0,
                 from sipAPIQtGui.h:33,
                 from sipQtGuiQVector0600QPair24000100QColor.cpp:24:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1874:1: note: forward
declaration of ‘class QColor’
 QT_FOR_EACH_STATIC_GUI_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER)
 ^
sip/QtCore/qpycore_qvector.sip:157:20: note: neither the destructor nor the
class-specific operator delete will be called, even if they are declared
when the class is defined
In file included from
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1098:0,
                 from
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:38,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType:1,
                 from sipAPIQtGui.h:33,
                 from sipQtGuiQVector0600QPair24000100QColor.cpp:24:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h: In instantiation of
‘class QTypeInfo<QColor>’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:119:46:   required
from ‘class QTypeInfoMerger<QPair<double, QColor>, double, QColor, double,
double>’
/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h:95:7:   required from
‘class QTypeInfo<QPair<double, QColor> >’
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:609:9:   required from
‘void QVector<T>::append(const T&) [with T = QPair<double, QColor>]’
sip/QtCore/qpycore_qvector.sip:304:49:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:58:26: error: invalid
application of ‘sizeof’ to incomplete type ‘QColor’
         isLarge = (sizeof(T)>sizeof(void*)),
                          ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:60:24: error: invalid
application of ‘sizeof’ to incomplete type ‘QColor’
         sizeOf = sizeof(T)
                        ^
Makefile:1379: recipe for target 'sipQtGuiQVector0600QPair24000100QColor.o'
failed
make[1]: *** [sipQtGuiQVector0600QPair24000100QColor.o] Error 1


On Fri, Nov 4, 2016 at 12:10 PM Phil Thompson <phil at riverbankcomputing.com>
wrote:

> On 3 Nov 2016, at 12:07 am, Louis Simons <lousimons at gmail.com> wrote:
> >
> > I've been teaching myself QML/QtQuick using the examples at
> https://github.com/baoboa/pyqt5/tree/master/examples/quick/tutorials/extending
> which are based on the C++ tutorials.  Everything works up until chapter 5,
> where I get a segmentation fault.  I'm running Python3 on Linux Mint 18
> with PyQt5 5.7 (built from source to get the latest).  Does this example
> work on anyone else's system with version 5.7?  The backtrace follows:
>
> It's a regression in PyQt v5.6 - shoul dbe fixed in tonight's snapshot.
>
> Thanks,
> Phil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20161105/dcf8d028/attachment.html>


More information about the PyQt mailing list