尝试将外部 QML 模块导入我的项目时出错

Posted

技术标签:

【中文标题】尝试将外部 QML 模块导入我的项目时出错【英文标题】:Errors trying to import an external QML module to my project 【发布时间】:2015-09-01 21:47:40 【问题描述】:

我正在尝试将模块从 papyros 导入我的应用程序。 为此,我克隆了 repo,然后将模块路径添加到 QML2_IMPORT_PATH env var。

纸莎草纸已经正确设置了 qmldir 文件,所以我要做的就是将目录添加到 QML2_IMPORT_PATH

即:如果 qmldir 在 /myhome/qml-material/modules/Material 目录中,那么我添加了 /myhome/qml-material/modules/Material到 QML2_IMPORT_PATH 变量。

我也尝试添加使用:

engine.addImportPath("/myhome/qml-material/modules/Material");

在加载主 qml 文件之前的 main.cpp 中。

似乎没有任何效果,我无法在我的应用程序中导入组件,并且 Qt Creator 代码完成完全忽略了新目录。 我尝试以几种不同的方式添加:

import modules.Material.Action 0.1
import Material.Action 0.1
import Action 0.1

但我不断收到错误消息: 模块“模块名称”未安装

它的唯一工作方式是使用完整路径:

import "/myhome/qml-material/modules/Material/Action.qml" as Action

但是,当然,这不是我想要的。

知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

你应该这样做engine.addImportPath("/myhome/qml-material/modules/"); 不是engine.addImportPath("/myhome/qml-material/modules/Material"); 因为当你写import Material 0.1时,Qt会搜索一个名为Material的文件夹,如果你已经在里面,这将不起作用。

【讨论】:

谢谢,我按照您的建议添加到 QML2_IMPORT_PATH,现在它可以正常工作,尽管 Qt Creator 仍然无法自动完成组件。

以上是关于尝试将外部 QML 模块导入我的项目时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用grabToImage将QML项目作为图像保存到文件时出错

汇总:全局和外部

运行 nuxt 项目时出错:“'nuxt' 未被识别为内部或外部命令”

QML 模块在项目中的优势是啥?

将项目导入eclipse时出错

尝试在 typescript 项目中使用 recharts 时出错