0

我正在开发一个项目,其中所有 .js 和 .qml 文件都存储在 Qt 资源文件 (.qrc) 中。我试图在 qml 文件中导入外部目录。外部目录包含用于不同目的的其他 .qml 文件。我不想将这些外部目录包含到 .qrc 文件中。

添加导入路径时出现错误:

qrc:\example.qml : 找不到目录

有什么方法可以包含这样的外部文件或目录。

4

1 回答 1

0

在 Qt 论坛http://qt-project.org/forums/viewthread/7047中找到了解决方案。要访问 QRC 之外的任何文件,请使用文件的“绝对文件路径”。例如:在 main.cpp 文件中:

QString path = QDir::currentPath(); //path where the exec is present

如果您的文件在src/file.qmlexec 文件夹中,那么您可以像 (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
}
于 2013-07-08T14:58:16.677 回答