Использование файла Qt Resource - PullRequest
1 голос
/ 11 июня 2011

Здесь я описываю проблему, с которой я столкнулся с файлом Qt ресурса .rcc.

Сначала, когда я создал файл .qrc в моем проекте, он будет соответствовать всем ресурсам, добавленным в qrc,в исполняемый двоичный файл.

секунда, rcc-файл в Qt используется для хорошего и оптимизированного использования ресурсов, и когда я создаю его в своем проекте, он все еще включает все ресурсы (добавленные в файл .qrc) в исполняемый файлдвоичный файл, даже файл rcc уже содержит все ресурсы, поэтому мой вопрос заключается в том, зачем использовать этот rcc, даже если ресурсы включены в исполняемый двоичный файл.Зачем включать избыточность в проект ??

Возможно, я что-то неверно истолковал или не знаю некоторых моментов, пожалуйста, исправьте меня, если я ошибаюсь.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Слишком поздно для ответа, но, возможно, кому-нибудь поможет.

Я ожидал подобной проблемы и использовал следующее решение: если вы используете QtCreator, просто оберните RESOURCES + = xxx с условием конфигурации в.pro file, вот так:

!realbuild {
    RESOURCES += xxx.qrc
}

и установите CONFIG + = realbuild для параметров qmake.Что это дало?Вы можете редактировать свои формы с помощью дизайнера QtCreator и использовать ресурс непосредственно из редактора, но он не будет скомпилирован в ваш целевой файл, ресурсы должны быть загружены во время выполнения с помощью QResource :: registerResource ().Команда Use может создавать ресурсы вручную, используя прямой вызов инструмента rcc, или написать простой скрипт и вызывать его с помощью переменной QMAKE_POST_LINK.

Теперь вопрос - как перезагрузить ресурсы во время выполнения? ...

0 голосов
/ 11 июня 2011

Существует два варианта ресурсов Qt :

  • , включающих .qrc в ваш файл .pro с
 RESOURCES = myapp.qrc
  • создайте внешний двоичный файл ресурсов с помощью rcc, затем зарегистрируйте его во время выполнения с помощью
QResource::registerResource("/path/to/myresource.rcc");

Не делайте оба.т. е. если вы ранее включили .qrc непосредственно в .pro и теперь хотите включить его динамически, удалите строку RESOURCES из файла проекта и выполните чистую сборку.Внешние бинарные ресурсы не включаются в ваш исполняемый файл, если вы не перечислили их в настройке RESOURCES вашего проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...