Файли ресурсів в qt - it notes

Кожне серйозне додаток з графічним призначеним для користувача інтерфейсом (і не тільки) використовує файли ресурсів. При цьому у вас є два варіанти: або підключати ресурси за відносними шляхами файлової системи, або помістити їх прямо всередину бінарного файлу програми або бібліотеки. У кожного з цих підходів є свої переваги і недоліки.

У першому випадку (ресурси - зовнішні файли) додаток стає більш гнучким, оскільки ресурси можна міняти без пересборки, однак користувачі можуть випадково (або спеціально) зіпсувати частину ресурсів, порушивши коректність роботи програми. До того ж, якщо відносні варіанти застосування своїх зіб'ються, то файли ресурсів не будуть знайдені.

З ресурсами, вшитими в бінарний файл, ситуація прямо протилежна: додаток стає монолітним, виконуваний файл має великий розмір, будь-яка зміна вимагає пересборки, але випадково порушити його працездатність (наприклад, підмінивши зображення) стає практично неможливо.

З урахуванням всіх плюсів і мінусів останній варіант в більшості випадків є кращим. Про нього ми і поговоримо.

Створення файлу з описом ресурсів

Насамперед створіть файл з описом тих ресурсів, які збираєтеся використовувати. Він має такий вигляд (назвемо його res.qrc):

У наведеному прикладі ми визначили один префікс: / images. Його можна вважати логічним каталогом ресурсів. Таких префіксів може бути скільки завгодно. Наприклад, якщо у вашому додатку є звукові ефекти, то ви можете додати префікс / sounds. Для створення більш глибокої ієрархії використовуйте префікси виду / some / long / prefix.

В тег вкладені визначення файлів, що відносяться до відповідного префікса. У прикладі включено єдине зображення logo.png. але ви можете вказати стільки файлів, скільки необхідно. Використовуйте відносні шляхи до файлів, беручи в якості каталогу відліку - той, в якому знаходиться qrc-файл.

Має сенс явним чином розподіляти ресурси по підкаталогам в файлової системі проекту. Наприклад, зображення logo.png помістіть в images /. Тоді запис набуває вигляду:

В цьому випадку логічний шлях до файлу logo.png знову має вигляд: /images/logo.png.

Для стислості можна використовувати псевдоніми наступним чином:

Файл доступний на логічному шляху /myprefix/logo.png.

Потім потрібно прив'язати заповнений qrc-файл до проекту. Для цього додайте в ваш pro-файл рядок виду:

В наведеному вище прикладі qrc-файл розташований на одному рівні з pro-файл. Якщо ви застосовуєте складнішу схему розміщення файлів, то скористайтеся відносним шляхом.

Використання ресурсів в додатку

Отже, qrc-файл готовий і підключений до проекту. Залишилося тільки скористатися перевагами від його використання. І зробити це зовсім не складно:

Ключовим тут є спосіб звернення до зображення (або будь-якого іншого файлу) з ресурсів. Шлях будується наступним чином: спочатку ставиться двокрапка. потім префікс / images. який ми самі вибрали, і нарешті шлях до файлу (або псевдонім) logo.png. В іншому все те ж саме, що і при роботі з звичайними файлами, призначеними тільки для читання.

висновок

Використовувати файли ресурсів в Qt-проектах дуже просто, тому якщо вам знадобилося додати зображення, музику або щось ще в свій додаток, то тепер ви знаєте, що потрібно робити.


QMovie: GIF-анімація в Qt


DragDrop в Qt: Переміщаємо зображення і текст


OpenCV: Установка і використання під Windows


Qt: Ефекти прозорості для вікон


QStackedWidget: Варіант реалізації Проксі-віджета для блокування Ui


QWizard: Створення Майстри в Qt


Патерн Декоратор і створення фільтрів зображень в Qt


Зображення в таблиці Qt