> Im working on MSYS2 which brings in all of the latest-and-greatest,
> ground-breaking compatibility-crushing versions, of which python is of
> course the worst offender.
>
> I'm trying to get the PyQT4 binding to work in MSYS2.  All of the
> prerequisites
> are ready and I've patched the plplot/cmake scripting to accept the PYQT
> generated via configure-ng.py (as distinct from configure.py)
> http://pyqt.sourceforge.net/Docs/PyQt4/build_system.html#module-PyQt4.pyqtconfig
> The cygwin64 distribution has the up-to-date sip modules, but built with
> configure.py;
> it flies through the pyqt4 bindings without error.
>
> The problem I'm getting is that the generated .cpp files do not compile
> just to demonstrate, the first error:
>
>> ./sipplplot_pyqt4QtExtWidget.cpp: In member function 'void
>> sipQtExtWidget::disconnectNotify(const QMetaMethod&)':
>> ./sipplplot_pyqt4QtExtWidget.cpp:370:41: error: no matching function for
>> call to 'sipQtExtWidget::disconnectNotify(const QMetaMethod&)'
>>           QtExtWidget::disconnectNotify(a0);
>>                                           ^
>> In file included from
>> D:/mingw/msys32/mingw32/include/qt4/QtCore/qiodevice.h:46:0,
>>                   from
>> D:/mingw/msys32/mingw32/include/qt4/QtCore/qdatastream.h:46,
>>                   from
>> D:/mingw/msys32/mingw32/include/qt4/QtCore/qmetatype.h:49,
>>                   from
>> D:/mingw/msys32/mingw32/include/qt4/QtCore/QMetaType:1,
>>                   from
>> D:/mingw/msys32/tmp/bld-32/bindings/qt_gui/pyqt4/sipAPIplplot_pyqt4.h:13,
>>                   from
>> D:/mingw/msys32/tmp/bld-32/bindings/qt_gui/pyqt4/sipplplot_pyqt4QtExtWidget.cpp:7:
>> D:/mingw/msys32/mingw32/include/qt4/QtCore/qobject.h:291:18: note:
>> candidate: virtual void QObject::disconnectNotify(const char*)
>>       virtual void disconnectNotify(const char *signal);
>>                    ^
>> D:/mingw/msys32/mingw32/include/qt4/QtCore/qobject.h:291:18: note:   no
>> known conversion for argument 1 from 'const QMetaMethod' to 'const char*'
>
> ===============
> Note: On cygwin the generated code (sipplot_pyqt4QtExtWidget.cpp) is
> different:
>
> void sipQtExtWidget::disconnectNotify(const char*a0)
> {
>      sip_gilstate_t sipGILState;
>      PyObject *sipMeth;
>
>      sipMeth =
> sipIsPyMethod(&sipGILState,&sipPyMethods[0],sipPySelf,NULL,sipName_disconnectNotify);
>
>      if (!sipMeth)
>      {
>          QtExtWidget::disconnectNotify(a0);
>          return;
>      }
>    And it compiles without error.
> ===============
>
>    So who's fault is it? is there a switch to be thrown in the qt
> configuration so that the headers are compatible with the
> different code generation?

This looks a lot like this issue in a different project:
https://github.com/Homebrew/homebrew/issues/41464

Which seems to be that sip generates for qt5 but the build uses qt4. 
Unfortunately I have not seen a solution and I also can't find anything 
on the PyQt list about this problem.

Perhaps it is possible to tell sip which version of qt to use?

Does MSYS2 come with both Qt4 and Qt5? Maybe if you hide qt5 sip will do 
the right thing?

-Hazen


------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to