尝试将外部 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项目作为图像保存到文件时出错