资源中的文件找不到本地文件

File inside resource cannot find local file

本文关键字:文件 找不到 资源      更新时间:2023-10-16

我有一个包含多个QML文件的项目。所有这些都在资源文件中。现在我想从本地文件系统加载外部映像。但我找不到办法。

Image {
    source: "images/image.png" // that tries to load file as 'qrc:/images/image.png'
    source: "file://images/image.png" // that does not work (file not found)
}

所以现在我有点困惑,我如何才能以正确的方式加载文件?

QML引擎假设存储在Qt资源系统中的QML文件中寻址的相对路径在该资源文件中解析。因此,如果QML文件在资源中,并且您想访问应用程序目录路径中的文件,则应该从c++:设置路径

engine.rootContext()->setContextProperty("applicationPath", "file://"+qApp->applicationDirPath()+ "/");

现在您可以在QML:中寻址文件

Image {
    source: applicationPath + "images/image.png"
}

感谢您的这篇文章。我研究了这个代码,发现它不适合我。我终于意识到问题出在哪里。只需使用/而不是//

context->setContextProperty("applicationPath","file:/"+qApp->applicationDirPath()+"/");