Система ресурсов Qt является независимым от платформы механизмом хранения двоичных файлов в исполняемом файле приложения. Она основана на взаимодействий qmake и компилятором ресурсов rcc. Ресурсы, связанные с приложением, указываются в фале qrc.
Данный формат файла основан на XML формате в котором перечислены файлы с относительным путем и при необходимости присваивается имя ресурса для доступа к ресурсу.
Пример содержания файла qrc:
<RCC> <file>images/copy.png</file> <file>images/cut.png</file> <file>images/new.png</file> <file>images/open.png</file> <file>images/paste.png</file> <file>images/save.png</file> </RCC>
Перечисленные файлы ресурсов должны находиться в том же каталоге, что и файл .qrc или в одном из его подкаталогов в данном случаи в каталоге images.
Пример с присвоенными именами ресурса:
<RCC> <qresource prefix="/new"> <file>images/new.png</file> </qresource> <qresource prefix="/open"> <file>images/new.png</file> </qresource> <qresource prefix="/copy"> <file>images/copy.png</file> </qresource> </RCC>
По умолчанию ресурсы доступны в приложении под тем же именем файла, что и в дереве исходного кода с префиксом «:/» или по URL-адресу со схемой qrc.
Для примера:
// Доступ с префиксом “:/ images/copy.png” // Без подкаталога ":/new/images/new.png" // С использованием подкаталога // Доступ по URL со схемой qrc qrc:///images/ copy.png // Без подкаталога qrc:/// new /images/ new.png // С использованием подкаталога
Для компиляции ресурса в двоичный файл необходимо указать в файле проекта pro приложения следующую строку:
RESOURCES += application.qrc
qmake создаст файл с именем qrc_application.cpp который будет связан с приложением. Этот файл содержит все данные в виде статических C ++ массивов. Файл qrc_application.cpp автоматически обновляется каждый раз, когда изменяется файл qrc или один из файлов, на которые он ссылается, изменяется.