Frage

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?

War es hilfreich?

Lösung

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.

Andere Tipps

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"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top