我正在开发一个项目,其中所有 .js 和 .qml 文件都存储在 Qt 资源文件 (.qrc) 中。我试图在 qml 文件中导入外部目录。外部目录包含用于不同目的的其他 .qml 文件。我不想将这些外部目录包含到 .qrc 文件中。
添加导入路径时出现错误:
qrc:\example.qml : 找不到目录
有什么方法可以包含这样的外部文件或目录。
在 Qt 论坛http://qt-project.org/forums/viewthread/7047中找到了解决方案。要访问 QRC 之外的任何文件,请使用文件的“绝对文件路径”。例如:在 main.cpp 文件中:
QString path = QDir::currentPath(); //path where the exec is present
如果您的文件在src/file.qml
exec 文件夹中,那么您可以像 (path += "/src/file.qml";) 一样访问它,现在 path 是file.qml
. 您可以在任何 QRC 文件中访问它。
QQuickView view;
view.rootContext()->setContextProperty("myFile", path);
view.setSource("qrc:/main.qml");
在 main.qml 文件中:
Loader
{
id: loadItem
source: myFile
}
Item
{
Component.onCompleted: loadItem.item
}