Uploaded image for project: 'Qt for Python'
  1. Qt for Python
  2. PYSIDE-3142

Shiboken6 generator does not include Pyside6 headers related to QtOpenGLWidget

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Out of scope
    • Icon: Not Evaluated Not Evaluated
    • None
    • 6.9.1
    • Shiboken
    • None
    • Linux/X11

      I am trying to generate a Python interface for the MapLibre Native Qt project. The whole experience is very dissatisfactory.

      <typesystem package="pyqmaplibre">
          <load-typesystem name="typesystem_openglwidgets.xml"/>
          <namespace-type name="QMapLibre">
                  <object-type name="GLWidget">
                          <include file-name="gl_widget.hpp" location="global"/>
                  </object-type>
          </namespace-type>
      </typesystem>
      

      With the above simplified structure the following happens:

      [100%] Building CXX object bindings/CMakeFiles/pyqmaplibre.dir/generated/pyqmaplibre/pyqmaplibre_module_wrapper.cpp.o
      In file included from /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_module_wrapper.cpp:21:
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_python.h: In function ‘PyTypeObject* Shiboken::SbkType() [with T = QOpenGLWidget::UpdateBehavior; PyTypeObject = _typeobject]’:
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_python.h:106:109: error: ‘SbkPySide6_QtOpenGLWidgetsTypeStructs’ was not declared in this scope; did you mean ‘SbkPySide6_QtWidgetsTypeStructs’?
        106 | template<> inline PyTypeObject *SbkType< ::QOpenGLWidget::UpdateBehavior >() { return Shiboken::Module::get(SbkPySide6_QtOpenGLWidgetsTypeStructs[SBK_QOpenGLWidget_UpdateBehavior_IDX]); }
            |                                                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            |                                                                                                             SbkPySide6_QtWidgetsTypeStructs
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_python.h: In function ‘PyTypeObject* Shiboken::SbkType() [with T = QOpenGLWidget::TargetBuffer; PyTypeObject = _typeobject]’:
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_python.h:107:107: error: ‘SbkPySide6_QtOpenGLWidgetsTypeStructs’ was not declared in this scope; did you mean ‘SbkPySide6_QtWidgetsTypeStructs’?
        107 | template<> inline PyTypeObject *SbkType< ::QOpenGLWidget::TargetBuffer >() { return Shiboken::Module::get(SbkPySide6_QtOpenGLWidgetsTypeStructs[SBK_QOpenGLWidget_TargetBuffer_IDX]); }
            |                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            |                                                                                                           SbkPySide6_QtWidgetsTypeStructs
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_python.h: In function ‘PyTypeObject* Shiboken::SbkType() [with T = QOpenGLWidget; PyTypeObject = _typeobject]’:
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_python.h:108:93: error: ‘SbkPySide6_QtOpenGLWidgetsTypeStructs’ was not declared in this scope; did you mean ‘SbkPySide6_QtWidgetsTypeStructs’?
        108 | template<> inline PyTypeObject *SbkType< ::QOpenGLWidget >() { return Shiboken::Module::get(SbkPySide6_QtOpenGLWidgetsTypeStructs[SBK_QOpenGLWidget_IDX]); }
            |                                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            |                                                                                             SbkPySide6_QtWidgetsTypeStructs
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_module_wrapper.cpp: In function ‘void initInheritance()’:
      /home/skinkie/Sources/pyside-maplibre-native-qt2/build/bindings/generated/pyqmaplibre/pyqmaplibre_module_wrapper.cpp:450:29: error: ‘SbkPySide6_QtOpenGLWidgetsTypeStructs’ was not declared in this scope; did you mean ‘SbkPySide6_QtWidgetsTypeStructs’?
        450 |                            &SbkPySide6_QtOpenGLWidgetsTypeStructs[SBK_QOpenGLWidget_IDX]);
            |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            |                             SbkPySide6_QtWidgetsTypeStructs
      

      Now this "missing" declaration is defined in PySide6/QtOpenGLWidgets/pyside6_qtopenglwidgets_python.h, but is not being included.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            kleint Friedemann Kleint
            skinkie Stefan de Konink
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes