You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qbs/QML中如何获取导入当前模块的实例信息?

Qbs中获取导入当前模块的实例信息

针对你提出的场景,要在imported.qbs中获取导入它的main.qbs的信息,可通过以下方式实现:

核心方案:利用parent属性与sourceCodeLocation

在Qbs的对象模型中,当你在main.qbs中实例化导入的Imported对象时,该实例的parent属性指向创建它的上下文对象(对应main.qbs中的项目/产品定义),而sourceCodeLocation属性可获取该对象所在的源文件路径。

修改后的a/imported.qbs代码

Product{
    name:{
        console.info("I was imported from " + parent.sourceCodeLocation);
        return "imported"
    }
}

运行后会打印出main.qbs的完整文件路径。

可选:只获取文件名

如果只需要输出main.qbs这个文件名而非完整路径,可以借助qbs.FileInfo模块处理路径:

import qbs.FileInfo

Product{
    name:{
        const importerFileName = FileInfo.fileName(parent.sourceCodeLocation);
        console.info("I was imported from " + importerFileName);
        return "imported"
    }
}

这样控制台会直接输出I was imported from main.qbs。

内容的提问来源于stack exchange,提问作者Mr. Developerdude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:20:46