【问题标题】:Creating Python bindings for a large quantity of C++ Qt Libraries为大量 C++ Qt 库创建 Python 绑定
【发布时间】:2022-06-17 15:39:22
【问题描述】:

简而言之: 您是否知道或知道如何实现下面提到的Python 中的现有库,无论是通过绑定还是任何其他可能的解决方案?


说明:

我正在做一个项目,我有非常大量 定制快速变化 C++ Qt Libraries(版本5.15.2) 我需要在Python 中使用。

在过去的几周里,我对该主题进行了大量研究。但是,我似乎无法找到合适的解决方案来以适当的方式执行绑定。

我主要研究了Shiboken,因为这是Qt Framework官方支持和鼓励的python绑定方案。

然而Shiboken 要求我为每个库手写一个type-system 和头文件,其中包含我想在绑定中使用的每个方法或该库的所需部分。这对我来说是个问题,因为我要求C++ 版本中存在的所有方法都存在于Python 版本中,而手写该文件实际上是不可能的。

它们需要像任何其他库一样从 Python 脚本中调用,或者以类似的方式调用。

【问题讨论】:

    标签: python c++ qt binding python-bindings


    【解决方案1】:

    Shiboken 可能是一个不错的选择。是的,您需要在类型系统头文件中指定每个类/结构/枚举/命名空间。但不是每种方法。如果在type-system 文件中指定一个类,所有的类方法将被提取到Python。比如这个定义就够了:

    <?xml version="1.0"?>
    <typesystem package="mylibrary">
        <object-type name="MyClass1"/>
        <object-type name="MyClass2"/>
    </typesystem>
    

    另外,您可以查看PySide 来源。有大量的Qt 库被提取到Python。很好的例子。

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      相关资源
      最近更新 更多