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

一番左の画像はアプリケーションバイナリに含まれている通常のアセットですが、他の3つはファイルシステムから読み込まれ、異なる形式で保存されています。
このサンプルは、4 種類の過去の Qt ロゴを表示するシンプルな画面 (fileloading.qml) で構成されています。一番左の画像はアプリケーションバイナリに含まれる通常のアセットですが、他の 3 つはファイルシステムから読み込まれ、異なる形式で保存されています。
ターゲットプラットフォーム
デバイスでのサンプル実行
サンプルをビルドすると、ファイルシステムから読み込むアセットが、ビルドフォルダのCMakeFiles/fileloading.dir/resources/ 内に用意されます。 logosフォルダには、コピーする画像と、作成されたアセットに関する追加情報が含まれています。 画像を含む「logos」フォルダを、SDカードのルートディレクトリにコピーしてください。テキストファイルは実行時には必要ないため、スキップしてもかまいません。
プロジェクト構造
このサンプルには、STM32およびNXP プラットフォーム向けのFatFSファイルシステムAPIの実装と、WindowsおよびLinuxホスト向けのPosix実装がdesktopフォルダに含まれています。
os/baremetalおよびos/freertosにあるmain 関数は、ボードごとに実装する必要がある `ConfigureBoard() ` 関数を呼び出します。この関数は、SD カードのハードウェアを設定し、Qt Quick Ultralite にファイルシステムを登録する必要があります。
この関数の実装は、各プラットフォーム(desktop、stm、nxp)の名前にちなんで名付けられたサブフォルダ内のboard_config.cppに用意されています。
3rdpartyフォルダには、組み込みデバイス向けのFatFS実装など、他社によって提供された補助コードが含まれています。
fatfs/fatfsfilesystem.hには、FatFS コードをQt Quick Ultralite API に統合するための 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 ライセンスの下で利用可能です。
詳細はこちらをご覧ください。