Question

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?

Était-ce utile?

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

Autres conseils

If you use an alias in your resource file giving: -

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

Then you can access your image as you are doing with: -

":/images/image.png"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top