Файл ресурсов Qt qrc - невозможно загрузить значок
У меня есть рабочий проект Qt5, и я добавил файл "resource.qrc" с редактором Qt Creator, который создал следующую строку в файле проекта .pro:
RESOURCES = resource.qrc
Я установил пустой префикс и файл png (14x14), и я попытался использовать его следующим образом:
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 (ресурс) (он дает мне undefined внешний)
Обновление:
Я размещаю здесь свой файл qrc:
<RCC>
<qresource prefix="/">
<file>my_image.png</file>
</qresource>
</RCC>
это довольно просто, и я не понимаю, почему при знаменах во время выполнения не отображаются
Ответы
Ответ 1
@Nikos C. дает вам полезные советы, но я думаю, что ваша главная проблема заключалась в том, что вы не использовали правильную ссылку на ресурс.
В вашем коде у вас есть:
QPixmap pixmap = QPixmap ("://my_image.png");
но, согласно документации, это должно быть
QPixmap pixmap = QPixmap (":/my_image.png");
или вы можете предоставить псевдонимы своим ресурсам и использовать их вместо этого.
Ответ 2
У меня была эта же проблема в последнее время, когда я исказил строку ресурса. Если вы используете текущую версию Qt Creator, вы можете открыть файл .qrc для редактирования, а затем щелкнуть правой кнопкой мыши ресурс (в данном случае изображения), который вы пытаетесь выполнить, затем нажмите "Скопировать путь к буферу". И voila, у вас есть правильная строка ресурсов каждый раз.
Создатель Qt потрясающий.
Надеюсь, это поможет!
Ответ 3
Проблема решена, это использование rcc.exe
C:\root\QT > c:\root\QT\4.7.4\bin\rcc.exe Headless.qrc -o qtresources.cpp
Во время компиляции у вас должны быть образы на пути.
Создайте файл qtresources.cpp, включив этот файл в make файл или проект. Вы должны увидеть изображение.