如何正确包装使用Qt和shiboken2的C ++库?

时间:2019-11-21 16:54:58

标签: python qt pyside2 shiboken2

我已经看到常见问题解答https://wiki.qt.io/Qt_for_Python#Frequently_Asked_Questions,其中指出

  

请考虑,如果您想为Qt / C ++生成绑定   项目,到Qt共享库的链接将丢失,并且   您将需要手动执行此操作。我们建议从以下版本构建PySide2   从头开始以使所有内容正确链接。

假设您想使用shiboken2包装一个c ++库,该库本身使用qt,甚至在其接口中使用qt类。在python世界中,您应该能够

pip install PySide2 my_cpp_lib

,然后python脚本应该能够

import my_cpp_lib
from PySide2.QtCore import QObject

my_cool_object = QObject()
my_cpp_lib.my_cool_api(my_cool_object)

我还不清楚如何实现该设置。从FAQ中,我推断在这种情况下从源代码编译PySide2会很好(因为我想使用shiboken2_generator来包装my_cpp_lib)。但是,我仍然希望与标准PySide2软件包兼容(当然,my_cpp_lib和PySide2之间将存在版本依赖性)。

链接到PySide2的QT共享对象/ dll是一个坏主意吗?如果是这样,为什么?哪个会更好呢?

如果qt库应该与my_cpp_lib python软件包一起打包,那么如何仍然可以使用PySide而不会发生冲突(因为必须有两个不同的共享库)?

0 个答案:

没有答案