Опубликован: 07.03.2015 | Уровень: для всех | Доступ: свободно | ВУЗ: Компания ALT Linux

Лекция 15: Разработка приложений с графическим интерфейсом

15.5 Ресурсы программы

Часто бывает необходимо добавить в программу дополнительные файлы такие как изображения и значки, используемые при оформления интерфейса, звуковые файлы для уведомлений пользователя, сценарии, выполняемые программой и т.д. В таких случаях можно воспользоваться преимуществами, которые предоставляет ресурсная система Qt.

Добавляя файл как ресурс в программу, мы указываем, что хотим включить данные, содержащиеся в этом файле в исполняемый файл. Таким образом скомпилированная программа будет содержать все ресурсные файлы внутри. Средства Qt позволяют обращаться к этим данным, и считывать файлы в ресурсах так же, как и обычные файлы в файловой системе.

Для демонстрации работы с ресурсами в Qt добавим изображения для пунктов меню и кнопки на панель инструментов текстового редактора.

  1. В папке проекта создадим подкаталог resources. Внутри добавим еще одну вложенную папку с названием images и добавим туда значки для меню.
  2. Вызовем мастер создания новых файлов и проектов. Выберем раздел Qt и создадим Qt Resource File (Файл ресурсов Qt). В следующем окне мастера, введем для файла имя в поле Name (Имя): resources.qrc. В поле Path (Путь) нажмем на кнопку и в диалоге выберем созданную папку resources. Нажмем Next (Далее) и в следующем окне Finish (Завершить).
  3. Выберем созданный файл ресурсов в дереве проекта (раздел Resources) и откроем его. В главном окне Qt Creator появится редактор ресурсов, который состоит из браузера ресурсов (сверху) и панели редактирования (снизу). На нижней панели выберите Add-> Add Prefix (Добавить->Добавить префикс). Сразу же в редакторе появится раздел для ресурсов и станет доступным для редактирования его название (поле Prefix). Установите название для раздела: actions.
  4. Выберите раздел actions в редакторе ресурсов и нажмите внизу на панели Add-> Add Files (Добавить->Добавить файлы). В диалоге выбора файлов откройте папку resources/images внутри папки с проектом, выберите все файлы в папке и нажмите Open. Пиктограммы сразу будут добавлены в раздел и показаны в редакторе.
  5. Для каждой из пиктограмм можно выбрать псевдоним — второе имя по которому к пиктограмме можно получить доступ. Это делают для того, чтобы при изменении файла не нужно было менять путь к изображению в коде программы. Для этого достаточно добавить другое изображение и установить такой же псевдоним как для старого, а старому изображению, в свою очередь, удалить псевдоним. Установите псевдоним для каждого из изображений согласно действию для которого они предназначены (смотрите на рис. 15.8).
  6. Изображение для действия можно добавить в коде программы вызвав для действия метод QAction::setIcon(). Например: ui->action_New->setIcon (QIcon(":/actions/new"));
    Редактирование файла ресурсов

    увеличить изображение
    Рис. 15.8. Редактирование файла ресурсов
    Обратите внимание на то, как мы указываем путь к файлу с изображением в ресурсах программы. Для того чтобы получить доступ к ресурсам мы начинаем путь с символов : /. Далее мы указываем раздел, куда мы добавили пиктограммы — actions, и затем указываем псевдоним для самого изображения в ресурсной системе — new. Для того, чтобы установить изображение для действия, мы создаем временный объект QIcon, которому передаем путь к изображению. Для того, чтобы добавить изображение для действий, мы воспользуемся другим способом и добавим изображение в редакторе действий. Для этого перейдите к редактору действий, два раза нажмите на действие и в диалоге редактирования нажмите на кнопку "..." в поле Icon (Значок). Выберите нужное изображение из ресурсов. Так же измените и другие действия.
  7. Добавим действий теперь также и в панель инструментов. Для этого перетащите действие из редактора действий на панель инструментов, которая расположена прямо под главным меню на форме. Для того, чтобы добавить разделитель нажмите правой кнопкой на панели и выберите Append Separator. Выберите в редакторе свойств для панели инструментов свойство toolButtonStyle и установите его в значение ToolButtonTextUnderIcon. Запустите просмотр для формы (см. рис. 15.9).
    Редактор с панелью инструментов

    Рис. 15.9. Редактор с панелью инструментов
Сергей Радыгин
Сергей Радыгин

Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке?

Тип приложения - не Qt,

Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.

 

Юрий Герко
Юрий Герко

Кому удалось собрать пример из раздела 13.2 Компоновка (Layouts)? Если создавать проект по изложенному алгоритму, автоматически не создается  файл mainwindow.cpp. Если создавать этот файл вручную и добавлять в проект, сборка не получается - компилятор сообщает об отсутствии класса MainWindow. Как правильно выполнить пример?