Shiboken2 和自定义 Qt 小部件

Shiboken2 and custom Qt widget

在 Windows 上,我需要在 Python 中使用一些用 C++ 编写的自定义 Qt5 小部件,并且由于其许可,我必须使用 pyside2

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

我知道 pyside2 还没有正式发布,但它似乎已经被使用了(例如,在 Maya 中):In a PySide2 app, how can I get the ID for a QWindow?

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


编辑

根据@placinta 的评论,我创建了一个 repo,其中包含一个尝试包装自定义 QMainWindow.

的最小示例

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

当我执行 shiboken2 可执行文件时,我得到 tons of warnings

我假设这些警告触发了 compilation errorshiboken2 生成的代码。

我的初始 CMake 配置存在问题 here. That is, CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS has limitations so I reverted to use 'old' export headers

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

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