【问题标题】:shiboken typesystem not inheriting classesshiboken 类型系统不继承类
【发布时间】:2016-04-10 22:50:34
【问题描述】:

我有两个 shiboken 库可以将 Qt 绑定导出到 Python。
我在 Lib2 中的子类 Lib1 不从绑定继承任何方法,包括任何 QWidget/QObject 方法。

我已经加载了类型系统:

<load-typesystem name="source/plugin/typesystem_lib1.pyside.xml" generate="no" />

生成的绑定是可用的,但它缺少继承的方法。
如果有影响,代码将被命名空间。

有人遇到过这样的事情吗?

【问题讨论】:

    标签: python c++ qt binding


    【解决方案1】:

    编辑:
    看起来 shiboken 实际上是根据 shiboken-header 文件 (global.h) 中的导入顺序添加这些的
    因此,您需要确保在包含该标头之前包含该标头的所有依赖项,并且所有包含都必须在 shiboken-header 中,您不能包含包含其他文件的文件,因为它们不会被尊重。
    此外 shiboken 不会使用完整路径,仅使用标题名称,因此我在构建期间创建了一个自动符号链接,该链接创建到我的标题的符号链接并将它们命名为 path_to_data.h 是唯一的。
    /编辑

    原来这失败的原因是因为我的两个类文件同名,包含信息的时候shiboken搞糊涂了。

    Shiboken 从 shiboken-header 加载标头,但它将它们剥离为仅文件名而不是保留完整路径,这意味着我们得到:

    #include "/path/to/data.h"
    #include "data.h"
    

    如果 data.h 位于包含路径的某个位置,它将在其中找到具有相同名称的类。

    我认为这是一个错误,但希望这可以帮助其他遇到此问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 2015-09-15
      相关资源
      最近更新 更多