Файл ресурса Qt qrc — не могу загрузить иконку

У меня есть настольный проект Qt5, и я добавил файл «resource.qrc» с редактором Qt Creator, который создал следующую строку в файле .pro проекта:

RESOURCES = resource.qrc

Я поставил пустой префикс и файл PNG (14×14), и я попытался использовать его так:

QPixmap pixmap = QPixmap ("://my_image.png");
ui->combobox->addItem(QIcon(pixmap), "itemname");

Проблема в том, что значок не будет отображаться!

Следующие работы:

QPixmap pixmap(14,14);
pixmap.fill(QColor("red"));
ui->combobox->addItem(QIcon(pixmap), "itemname");

так что проблема должна быть в процессе встраивания ресурса. Я заметил, что у сгенерированного exe нет раздела ресурса внутри … У меня нет статических связанных внешних библиотек, поэтому я не думаю, что мне нужно Макрос Q_INIT_RESOURCE (ресурс) (он дает мне неопределенный внешний)

Обновить:
Я публикую здесь свой файл qrc:

<RCC>
<qresource prefix="/">
<file>my_image.png</file>
</qresource>
</RCC>

это довольно просто, и я не понимаю, почему во время выполнения иконки не отображаются

12

Решение

@Nikos C. дает вам полезные советы, но я думаю, что ваша основная проблема заключалась в том, что вы не использовали правильную ссылку на ресурс.

В вашем коде у вас есть:

QPixmap pixmap = QPixmap ("://my_image.png");

но, согласно документация, так должно быть

QPixmap pixmap = QPixmap (":/my_image.png");

или вы можете дать псевдонимы своим ресурсам и использовать их вместо этого.

11

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

Недавно у меня была такая же проблема, когда я исказил строку ресурса. Если вы используете текущую версию Qt Creator, вы можете открыть свой файл .qrc для редактирования, затем щелкнуть правой кнопкой мыши по ресурсу (в нашем случае это изображение), к которому вы пытаетесь обратиться, затем нажмите «Копировать путь ресурса в буфер обмена». И вуаля, у вас есть правильная строка ресурса каждый раз.

Qt Creator потрясающий.

Надеюсь это поможет!

23

Проблема решена — использовать rcc.exe
C: \ root \ QT> c: \ root \ QT \ 4.7.4 \ bin \ rcc.exe Headless.qrc -o qtresources.cpp
Во время компиляции у вас должны быть изображения в пути.
Создайте файл qtresources.cpp, включите этот файл в make-файл или проект. Вы должны увидеть изображение.

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