На этом шаге рассмотрим компилятор ресурсов RCC.
Почти любая программа так или иначе обращается сторонним ресурсам, таким как растровые изображения, файлы перевода и т. д. Это не является достаточно надежным и эффективным способом, т. к. эти ресурсы могут быть удалены или недоступны по каким-либо другим причинам. Это, несомненно, может отразиться на правильной работе программы, ее внешнем облике и работоспособности.
Компилятор ресурсов предоставляет возможность внедрения таких файлов в исполняемые модули, для того чтобы приложение получало доступ к требуемым ресурсам в процессе его исполнения. Существуют специальные соглашения об именовании, благодаря которым можно однозначно обращаться к таким ресурсам.
Все необходимые для использования файлы (ресурсы) должны быть описаны в специальном файле с расширением qrc (Qt Resource Collection, коллекция ресурсов Qt) вместе с их путями. Это описание выполняется в нотации XML. Например:
<!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>images/open.png</file> <file>images/quit.png</file> </qresource> </RCC>
Файл примера будет подвергнут анализу компилятором ресурсов — утилитой rcc, для создания из файлов open.png и quit.png одного исходного файла C++, содержащего все их данные, которые будут компилироваться и компоноваться вместе с остальными файлами проекта. Все данные ресурса хранятся в файле C++ в виде одного большого массива.
Такой подход дает уверенность в том, что необходимые ресурсы всегда доступны, что поможет избежать проблем неправильной установки необходимых для исполняемой программы файлов. Сам же qrc-файл должен быть указан в pro-файле в секции RESOURCES, для того чтобы утилита qmake учла информацию из файла ресурса. Например:
RESOURCES = images.qrc
Для того чтобы воспользоваться растровым изображением, предоставленным файлом open.png, можно поступить следующим образом:
plbl->setPixmap(QPixmap(":/images/open.png"));
На следующем шаге рассмотрим структуру Qt-проекта.