このページでは

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 圧縮を有効にするなど、「リソースの管理」で説明したその他のアセット プロパティも適用できます。

ファイル

画像:

Qul::PlatformInterface::Filesystem およびQul::PlatformInterface::Fileも参照してください

特定の Qt ライセンスの下で利用可能です。
詳細を見る。