我有两个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路径上的某个位置,它将在其中找到具有相同名称的类。

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

关于python - shiboken类型系统不继承类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36536476/

10-12 23:35