如何在QML中添加和使用资源?

DJC*_*rth 7 qt image qml qtquick2

我想在一个简单的Qt项目中使用QtQuick Image对象,并在项目中包含图像.我已将图像添加到资源文件中.我使用调试来确保资源存在并作为"Resources/myfile.png"编译到应用程序中

但是,如果我声明一个QtQuick图像对象并将源设置为"Resource/myfile.png",则找不到图像.相反,我收到一条消息:

QML Image: Cannot open: file:///C:/Users/me/Documents/QtCreator/build-myapp-Desktop_Qt_5_1_1_MinGW_32bit-Debug/qml/myapp/Resources/dial_bg.png
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用C++方法来访问文件,也会出现同样的情况

source: ":/Resources/dial_bg.png"
Run Code Online (Sandbox Code Playgroud)

这在编译时遇到错误.

myfile.png尚未复制到该位置.myfile.png没有出现在项目文件中,尽管它已被添加到资源文件中.

我会很满意一个解决方案,要么将图像复制到Image想要拾取它的地方,要么让Image访问'编译版'版本.

DJC*_*rth 6

在QML中访问此类资源的方式如下:

source: "qrc:///Resources/dial_bg.png"
Run Code Online (Sandbox Code Playgroud)


Bug*_*rUK 6

如果您使用 Qt Creator,您可以右键单击资源Copy Path,在我的情况下,它给了我:

qrc:/Oscar.PNG
Run Code Online (Sandbox Code Playgroud)

您不需要按照所选答案的建议直接引用资源目录。

例子:

复制资源路径示例