c++ - Shiboken2 和自定义 Qt 小部件

标签 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 Conda package包装 Qt 5.6。

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

我假设这些警告触发了 compilation error使用 shiboken2 生成的代码。

最佳答案

我的初始 CMake 配置问题是描述的 here .也就是说,CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 有限制,所以我恢复使用“旧”export headers .

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

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

关于c++ - Shiboken2 和自定义 Qt 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47607616/

相关文章:

Javascript 编译器/压缩器(Windows GUI)

c++ - Winsock - 连接问题

python 3 : Integer not repeated

python3编码替换unicode字符

c++ - http请求中的QNetworkReply和QNetworkAccessManager超时

c++ - 我可以对 Java 或 C++ 使用 Python 缩进样式吗?

c++ - MinGW-w64 的 gcc 和 Address Sanitizer

python - 当 numpy int32 数组转换为 float32 时,值会发生变化

c++ - 如何使用C/C++读取目录的文件索引?

c++ - 我可以#define 多深?