Shiboken2和自定义Qt小部件

时间:2017-12-02 11:52:14

标签: c++ windows python-3.x qt5 pyside2

在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 5.6的Qt Conda package

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

我认为这些警告会触发compilation error生成shiboken2代码。

1 个答案:

答案 0 :(得分:0)

我的初始CMake配置问题是here所描述的问题。也就是说,CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS有局限性,所以我恢复了使用旧的' export headers

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

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