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