リソースファイル分割のすゝめ
この記事は Qt Advent Calendar 2019 2日目の記事です。
リソースのおさらい
最近の Qt Quick のプロジェクトでは、.qml ファイルや .js ファイル、画像などのアセットなどを Qt のリソースシステム で管理するのが一般的になっています。
そのドキュメントに記載がありますが、リソースは .qrc という拡張子の XML 形式で、.pro ファイル内では
RESOURCES += main.qrc
アプリケーションのコンパイル時に、rcc という Qt 独自のリソースコンパイラによってリソースファイルの中身が
qrc_リソースファイル名.cpp
リソースは適切なグループに分けよう
1つのリソースファイルにソースコードと画像が含まれる場合、ソースコードの一部を変更する度に、そのリソースファイルに含まれる全てのファイルに対して rcc およびコンパイルの実行が行われます。
小さな画像やテキストファイルなどがほどんとあればあまり気になりませんが、巨大な3Dのアセットなどが含まれる場合、コードを1行変えただけでもコンパイル処理が膨大になってしまいます。
と言うわけで、1つのリソースファイルですべてのものを管理するよりも、適切な粒度に分割した方が開発効率がよくなることが多いです。
以下にオススメの一例を挙げますが、プロジェクトに応じて柔軟に効率よく管理をしましょう。
- sources.qrc … .qml と .js(毎回コンパイルされる想定)
- images.qrc … 画像(デザイン更新時のみ再コンパイルする想定)
- 3dassets.qrc … 3D関連のアセット(同上)