Qt, включая структуру каталогов ресурсов внутри исполняемого файла

Я использую QWebView для запуска веб-приложения. Есть 650+ файлов. Размещение каталога веб-приложения в исходном каталоге не приводит к тому, что исполняемый файл связывает каталог.

Как включить весь каталог веб-приложения, чтобы исполняемый файл мог отображать файлы.

Примечание. В настоящее время я добавил index.html в качестве ресурса и могу получить к нему доступ с помощью qrc://. Но поскольку я не могу добавить всю структуру каталогов в qrc (могу ли я?), исполняемый файл не включает другие файлы.


person Dot    schedule 27.06.2012    source источник


Ответы (1)


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

Это можно сделать с помощью простого скрипта предварительной сборки. Взгляните на qrcgen. Цитирование сообщения в блоге по этой ссылке:

Созданный мной скрипт qrcgen принимает каталог и префикс, рекурсивно сканирует каталог и генерирует .qrc с тем же именем, что и сканируемый каталог. Это решило мою проблему, и я надеюсь, что это может помочь другим. Он также доступен через PyPI, просто «easy_install qrcgen».


Чтобы обновлять файл .qrc всякий раз, когда изменяется содержимое вашего каталога, вам необходимо включить этот шаг в процесс сборки:

  • Для проектов C++/Qt вы можете добавить этот шаг в конфигурацию сборки в QtCreator или добавить в свой файл qmake оператор system(...). Обратите внимание, что такие команды обычно не переносимы. (Если это не переносимо, вы можете поместить некоторые условия операционной системы вокруг нескольких команд.)

  • Для проектов PyQt/PySide я не знаю, как это сделать, но я уверен, что вы найдете решение и для этого.

person leemes    schedule 27.06.2012