C
Qt Quick ウルトラライトファイルローディングの例
外部ストレージからアセットをロードする方法を示します。
概要
この例では、ファイルシステムを使用して SD カードに保存されたアセットを読み込む方法を示します。

このサンプルは、4つの異なるQtロゴを表示するシンプルな画面(fileloading.qml)で構成されています。一番左の画像はアプリケーションバイナリに含まれる通常のアセットで、他の3つはファイルシステムから読み込まれ、異なるフォーマットで保存されています。
対象プラットフォーム
デバイス上での例の実行
サンプルをビルドすると、ファイルシステムからロードするアセットがCMakeFiles/fileloading.dir/resources/のビルドフォルダーに用意されます。logosフォルダには、コピーする画像と、作成されたアセットに関する追加情報が含まれています。画像を含むlogosフォルダをSDカードのルートディレクトリにコピーします。テキストファイルは実行時には必要ないので、スキップしてかまいません。
プロジェクトの構成
このサンプルには、STM32およびNXP プラットフォーム用のFatFSファイル・システムAPIの実装と、WindowsおよびLinuxホスト用のPosixの実装がデスクトップ・フォルダに含まれています。
os/baremetalと os/freertosの main 関数は、ボード用に実装する必要があるConfigureBoard() 関数を呼び出します。この関数はSDカードハードウェアをセットアップし、Qt Quick Ultraliteにファイルシステムを登録する必要があります。
この関数の実装は、board_config.cppのプラットフォーム名(desktop、stm、nxp)にちなんだサブフォルダーにあります。
3rdpartyフォルダには、組み込みデバイス用のFatFS実装のように、他のパーティから提供された補助的なコードが含まれています。
fatfs/fatfsfilesystem.hには、Qt Quick Ultralite APIへのFatFSコードのAPI統合が含まれています。カスタム・ファイル・システムをQt Quick Ultraliteに統合する方法の詳細は、ファイル・システムの統合で説明されています。
ファイル・システムからのイメージの使用
QMLでは、file:// プロトコルを用いてファイル・システムから画像ファイルにアクセスすることができます。
Image { source: "file://logos/2008.png" }
アセットは、ターゲットデバイスでのレンダリングに最適化されたフォーマットに変換されます。
ImageFiles {
files: [ "2008.png" ]
MCU.prefix: "logos"
MCU.resourceAsFile: true
MCU.resourceCompression: false
}アセットをファイルリソースとして使用するには、MCU.resourceAsFileプロパティを有効にする必要があります。また、画像パスにプレフィックスを追加したり、RLE 圧縮を有効にするなど、「リソースの管理」で説明したその他のアセット プロパティも適用できます。
ファイル
- fileloading/CMakeLists.txt
- fileloading/board_config.h
- fileloading/fatfs/fatfsfilesystem.h
- fileloading/fileloading.qml
- fileloading/mcu_fileloading.qmlproject
- fileloading/nxp/board_config.cpp
- fileloading/os/baremetal/main.cpp
- fileloading/posix/board_config.cpp
- fileloading/posix/posixfilesystem.cpp
- fileloading/posix/posixfilesystem.h
- fileloading/stm/board_config.cpp
- fileloading/stm/stm32u5_board_config.cpp
画像:
Qul::PlatformInterface::Filesystem およびQul::PlatformInterface::Fileも参照してください 。
特定の Qt ライセンスの下で利用可能です。
詳細を見る。