Qt Image from resource file

didgogns picture didgogns · Jul 14, 2015 · Viewed 19.7k times · Source

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?

Answer

demonplus picture demonplus · Jul 14, 2015

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");