Путь к ресурсу Qt qrc не работает

Я хотел бы показать изображение в QLabel виджет. Изображение находится в папке ./images/ относительно resource.qrc файл и включены, как это:

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

Теперь я хочу показать изображение в QLabel:

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

Это не работает В режиме отладки pixmap = NULL, Я думаю, что путь qrc неверен. С абсолютным системным путем к изображению c:/images/... это работает отлично. Любая идея?

7

Решение

Указанный вами префикс применяется к пути к ресурсам внутри приложения. Это не относится к реальному пути к файлу. Правильный ресурс должен быть:

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

И путь ресурса будет :/images/images/image.png,

Вы также можете указать prefix="/" в файл RCC и использовать ://images/image.png путь ресурса. Я думаю, что это более удобно.

9

Другие решения

Если вы используете псевдоним в вашем файле ресурсов, давая: —

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

Затем вы можете получить доступ к своему изображению, как вы делаете с: —

«: /Images/image.png»

5

По вопросам рекламы [email protected]