shiboken类型系统没有继承类

shiboken typesystem not inheriting classes

本文关键字:继承 类型系统 shiboken      更新时间:2023-10-16

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

我已经加载了打字系统:

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

生成的绑定是可用的,但它缺少继承的方法
如果有区别的话,代码是按名称命名的。

有人在这样的事情上运气好吗?

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

事实证明,这之所以失败,是因为我的两个类文件的名称相同,而shiboken在包含信息时会感到困惑。

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

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

如果data.h在include路径上的某个位置,它会在其中找到同名的类

我认为这是一个bug,但希望这能帮助其他遇到这个问题的人。