C
Qt Quick Ultralite 文件加载示例
演示了如何从外部存储加载资源。
概述
本示例展示了如何使用文件系统从 SD 卡读取存储的资源。
示例包括一个简单的屏幕(fileloading.qml),显示了四个不同的历史 Qt 标志。最左边的图像是应用程序二进制文件中包含的常规资源,而其他三个则是从文件系统中读取并存储在 مختلف تب formatting.
目标平台
在设备上运行示例
构建示例后,从文件系统加载的资源位于构建文件夹中的 CMakeFiles/fileloading.dir/resources/。logos 文件夹包含需要复制的图像和一些有关创建的资源的信息。将包含图像的 logos 文件夹复制到 SD 卡的根目录。运行时不需要文本文件,可以跳过。
项目结构
示例包含 STM32 和 NXP 平台的 FatFS 文件系统 API 实现,以及针对 Windows 和 Linux 主机的 desktop 文件夹中的 Posix 实现。
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/desktop/board_config.cpp
- fileloading/desktop/posixfilesystem.cpp
- fileloading/desktop/posixfilesystem.h
- fileloading/fatfs/fatfsfilesystem.h
- fileloading/fileloading.qml
- fileloading/mcu_fileloading.qmlproject
- fileloading/nxp/board_config.cpp
- fileloading/os/baremetal/main.cpp
- fileloading/stm/board_config.cpp
图像
参见 Qul::PlatformInterface::Filesystem 和 Qul::PlatformInterface::File。
在某些Qt许可证下可用。
了解更多。