Image 如何在QML中添加和使用资源?
我想在一个简单的Qt项目中使用一个QtQuick图像对象,并将该图像包含在项目中。我已将图像添加到资源文件中。我使用了调试来确保资源存在,并以“Resources/myfile.png”的形式编译到应用程序中 但是,如果我声明一个QtQuick图像对象并将源设置为“Resource/myfile.png”,则找不到图像。相反,我得到了一个信息:Image 如何在QML中添加和使用资源?,image,qt,qml,qtquick2,Image,Qt,Qml,Qtquick2,我想在一个简单的Qt项目中使用一个QtQuick图像对象,并将该图像包含在项目中。我已将图像添加到资源文件中。我使用了调试来确保资源存在,并以“Resources/myfile.png”的形式编译到应用程序中 但是,如果我声明一个QtQuick图像对象并将源设置为“Resource/myfile.png”,则找不到图像。相反,我得到了一个信息: QML Image: Cannot open: file:///C:/Users/me/Documents/QtCreator/build-myapp-
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
如果尝试使用C++方法访问文件
,也会发生同样的情况。source: ":/Resources/dial_bg.png"
这会在编译时给我一个错误
myfile.png尚未复制到该位置。myfile.png不会出现在项目文件中,尽管它已添加到资源文件中
我很乐意使用一种解决方案,将图像复制到图像要拾取的位置,或者使用一种方法让图像访问“编译版本”。在QML中访问此类资源的方法如下:
source: "qrc:///Resources/dial_bg.png"
qml.qrc文件
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/">
<file alias="main.qml">qml/main.qml</file>
</qresource>
<qresource prefix="/pics/">
<file alias="bottom_arrow.png">pics/bottom_arrow.png</file>
</qresource>
</RCC>
在main.qml文件中加载图像:
...
Image {
source: "pics/ef-logo.png"
}
..
在QT中,它以某种方式自动抄送qrc文件进行编码。
但是如果您使用的是Cmake和visual studio。然后在Cmake中,您需要包括以下内容:
set(CMAKE_AUTOMOC ON) #must have for QML to work
set(CMAKE_AUTORCC ON) #for compiling qrc file to rcc
set(AUTORCC_OPTIONS "src/qml.qrc")
我希望这会有所帮助。这可能不是最好的方法,但如果您使用的是Qt Creator,您可以右键单击资源并复制路径,在我的情况下,它会给出:
qrc:/Oscar.PNG
您不需要按照所选答案的建议直接引用资源目录
例如:
这将从应用程序可执行文件的资源区域获取映像。您还必须将其添加到qrc文件中,以便将其内置到可执行文件中。
qrc:/Oscar.PNG