Search code examples
c++qtqpixmap

Qt qrc resource path doesn't work


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?


Solution

  • 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.