在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。
我假设这些警告正在使用shiboken2
生成的代码触发compilation error。
最佳答案
我最初的CMake配置存在一个问题,它是here描述的。也就是说,CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS具有局限性,因此我恢复使用'old'export headers。
但是,仍然存在缺少的metaObject()
成员函数声明的编译错误。由于实现存在于_wrapper.cpp
中,因此它通过手动添加声明来工作。尽管这并不是真正令人满意的解决方案,但它是其他用户的起点。
Qt票证用于https://bugreports.qt.io/browse/PYSIDE-597上的问题。