我正在开发一个项目,其中所有.js和.qml文件都存储在Qt资源文件(.qrc)中。我试图在qml文件中导入外部目录。外部目录包含用于不同目的的其他.qml文件。我不想将这些外部目录包含在.qrc文件中。
添加导入路径时出现错误:
qrc:\ example.qml:找不到目录
有没有办法包含这样的外部文件或目录。
答案 0 :(得分:0)
在Qt论坛http://qt-project.org/forums/viewthread/7047中找到了解决方案。要访问QRC外部的任何文件,请使用文件的“绝对文件路径”。 例如: 在main.cpp文件中:
QString path = QDir::currentPath(); //path where the exec is present
如果您的文件位于exec文件夹的src/file.qml
,那么您可以像访问它一样访问它
(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
}