Qt Image from resource file

qimageqtresources

I'm trying to insert an image to my program via resource file, which is like:

<RCC>
    <qresource prefix="/">
        <file>green.png</file>
        <file>other files</file>
    </qresource>
</RCC>

and when I'm trying to load it using QImage or QPixmap, like:

QImage *green = new QImage(":/green.png");
if(green->isNull()) qDebug("null");

I always see that null message, indicating that I'm doing something wrong. One solution may be using absolute path like

"C:\\Users\\user\\Documents\\project\\green.png",

which works of course, but I'd prefer implement it using resource file. Could you please give me some advice?

Best Answer

All this will work if your png files are located in the same folder as .pro, .qrc, and .cpp files of your project.

Usually it is convenient to put all images to special subfolder Resources, for example. Then in .qrc the line will look like:

<file>Resources/green.png</file>

And in .cpp file:

QImage *green = new QImage(":/Resources/green.png");
Related Topic