Shiboken2和自定义Qt小部件

gma*_*s80 5 c++ windows python-3.x qt5 pyside2

在Windows上,我需要在Python中使用一些用C++编写的自定义Qt5小部件,pyside2因为它的许可证我必须使用它.

我已经能够pyside2从源代码编译库(连同shiboken2示例),但我无法找到如何包装自定义Qt5小部件的简单示例.

我知道pyside2仍然没有正式发布,但它似乎已经被使用(例如,在Maya中):在PySide2应用程序中,我如何获得QWindow的ID?

任何人都可以给出提示或指示吗?一个最小的例子会更好.


编辑

根据@placinta评论,我创建了一个包含一个最小示例的repo,它试图包装一个自定义QMainWindow.

在我的测试中,我使用了包装5.6 的pyside2 Conda包Qt.

当我执行shiboken2可执行文件时,我收到了大量的警告.

我认为这些警告触发编译错误shiboken2生成的代码.

gma*_*s80 0

我的初始 CMake 配置存在一个问题,如此处所述。也就是说, CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 有限制,因此我恢复使用“旧”导出标头

但是,缺少成员函数声明的编译错误metaObject()仍然存​​在。它通过手动添加声明来工作,因为实现存在于_wrapper.cpp. 尽管它并不是一个真正令人满意的解决方案,但它是其他用户的一个起点。

该问题的 Qt 票证位于https://bugreports.qt.io/browse/PYSIDE-597