Шаг 6.
Библиотека Qt.
Компилятор ресурсов RCC

    На этом шаге рассмотрим компилятор ресурсов 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-проекта.




Предыдущий шаг Содержание Следующий шаг