Qt qrc resource path doesn't work

Xear picture Xear · Jun 14, 2013 · Viewed 14k times · Source

I would like to show an image within a QLabel widget. The image is located in the folder ./images/ relative to the resource.qrc file and included like the this:

<RCC>
    <qresource prefix="/images">
        <file>image.png</file>
    </qresource>
</RCC>

Now I want to show the image within a QLabel:

QPixmap pixmap( ":/images/image.png" );
label->setPixmap( pixmap );

This don't work. While in debug mode pixmap = NULL. I think the qrc path is wrong. With the absolute system path to the image c:/images/... it works fine. Any idea?

Answer

Pavel Strakhov picture Pavel Strakhov · Jun 14, 2013

The prefix you've specified is applied to the resource path inside the app. It doesn't apply to the real path of the file. The correct resource should be:

<RCC>
    <qresource prefix="/images">
        <file>images/image.png</file>
    </qresource>
</RCC>

And the resource path will be :/images/images/image.png.

You can also specify prefix="/" in RCC file and use ://images/image.png resource path. I think it's more convenient.