0
我正在處理所有.js和.qml文件存儲在Qt資源文件(.qrc)中的項目。我試過在qml文件中導入一個外部目錄。外部目錄包含用於不同目的的其他.qml文件。我不想將這些外部目錄包含在.qrc文件中。qrc:無法找到文件/目錄問題
我得到一個錯誤,當我添加導入路徑說:
QRC:\ example.qml:找不到目錄
有沒有什麼辦法,包括外部文件或目錄類似這個。
我正在處理所有.js和.qml文件存儲在Qt資源文件(.qrc)中的項目。我試過在qml文件中導入一個外部目錄。外部目錄包含用於不同目的的其他.qml文件。我不想將這些外部目錄包含在.qrc文件中。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
如果您的文件是在EXEC文件夾的src/file.qml
,那麼你就可以訪問它像 (路徑+ = 「/src/file.qml」),現在路徑是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
}
你爲什麼要存儲在資源文件CPP和QML文件?它不是爲此目的而設計的。 – TheDarkKnight
您始終可以使用不帶前綴「qrc:」或「:」的完整路徑。但正如已經提到的,是什麼讓你將cpp和qml文件存儲到這個應用程序的資源中?這些在運行時不需要。 –
嗨,梅林和塞巴斯蒂安,這是我的問題的錯誤。我已糾正它。但是關於qml,我認爲這是使用qrc最有效的方法,因爲在程序執行期間,qrc將把所有qml文件保存在其中。 – Ansif