Я только что обнаружил удивительный способ сделать это. Что странно, так это то, что никто другой не предложил это, когда это так совершенно тривиально. Возможно, это не работало в старых версиях Qt/Qt Creator, но теперь работает.
Вот:
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>test/test.txt</file>
</qresource>
</RCC>
Каталог test
должен существовать и должен содержать test.txt
.
Нет необходимости создавать отдельные теги <qresource>
с разными префиксами. Нет необходимости в атрибутах alias
.
Файлы четко организованы в файловой системе и в проводнике проекта и вы можете получить к ним доступ из кода с чистыми путями, такими как :/test/test.txt
.
а>
(на этом снимке экрана показан проект, в котором также есть дополнительные файлы — игнорируйте их)
Бонус: вы можете щелкнуть правой кнопкой мыши папку "test" в проводнике проекта в Qt Creator и выбрать "Добавить новый...", это поместит вновь созданный файл в нужное место в файловая система. К сожалению, он не отображается в поддереве qrc в проводнике проекта, а только в отдельном поддереве «Другие файлы». Вам нужно щелкнуть правой кнопкой мыши «qrc.qml» в проводнике проекта и выбрать «Добавить существующие файлы», чтобы файл появился в поддереве qrc, как и должно быть. Так что это немного глючит/грязно, но когда вы научитесь его использовать, это работоспособно.
Бонус 2: вы можете импортировать (добавить) существующий файл/каталог (который находится в любом (под)подкаталоге файла qrc), и будет сгенерирован правильный синтаксис XML, в результате чего правильная древовидная структура в проводнике проекта.
Что, по моему мнению, работает плохо:
- Создание файла из Qt Creator из
File -> New file or project
(или Ctrl-N). Это не позволяет вам поместить файл в произвольный каталог файловой системы, только в корневой каталог проекта.
- Файлы, которые вы поместили в подкаталоги не включены в поиск Qt Creator по всему проекту (
Ctrl+Shift+F
).
Редактировать: я только что заметил, что OP делает именно то, что я предлагаю. В этом случае он, вероятно, использует более старую версию Qt Creator. У меня 4.1.0.
28.10.2016
:/something
не будет работать для меня в Qt 5.7, толькоqrc:/something
будет (иначе я получаю ошибку":/something": no such directory
) 02.11.2016