管理资源和资产

This topic describes how Qt Quick Ultralite applications make use of image resources.

Font assets are not added through the resource system. For more information about font handling, see 文本渲染和字体 .

See also topic on 图像缓存 .

摘要

To use resources in a Qt Quick Ultralite application, you must declare them using the CMake API.

The resource compiler ( qulrcc ) uses the resource declarations to prepare the contents for inclusion. It may perform optimizations on the raw resource data. For example, image optimization can result in lowering color depth, replacing with alphamap, removing outline transparent areas, and swizzling.

将文件添加到资源系统

使用 qul_add_resource CMake function to add resources to a Qt Quick Ultralite application.

qul_add_resource(myapp FILES ui/spinner.png background.png)
							

The function adds the files into to a virtual resource filesystem. Resources in the filesystem are referenced through resource URIs with the optional "qrc:" scheme.

qrc:/
  |-- background.png
  |-- ui/
       |-- spinner.png
							

In the above example, qrc:/ui/spinner.png is a resource URI for the resource data based on the ui/spinner.png file from the source directory. It can be displayed by using its URI as source in an 图像 :

Image {
    source: "qrc:/ui/spinner.png"
}
							

When using relative paths in resource URIs, the paths are relative to the root of the virtual resource filesystem. The scheme of the URI can be omited. The following URIs all refer to ui/spinner.png :

  • ui/spinner.png
  • /ui/spinner.png
  • qrc:ui/spinner.png
  • qrc:/ui/spinner.png
  • qrc:///ui/spinner.png

资源特性

可选,使用 set_source_files_properties CMake function to set resource properties. It must be done before calling qul_add_resource .

set_source_files_properties(filename.png PROPERTIES QUL_COMPRESSION ON)
							

Image resources support a number of resource properties that control how the image is stored on the device, or can trigger different optimizations. See CMake 源文件特性 for the full list.

In the following example, the large background.png is stored in a compresed format by setting QUL_COMPRESSION ,而 spinner.png is tagged with QUL_OPTIMIZE_FOR_ROTATION to optimize it for runtime rotation:

set_source_files_properties(spinner.png PROPERTIES QUL_OPTIMIZE_FOR_ROTATION ON)
set_source_files_properties(background.png PROPERTIES QUL_COMPRESSION ON)
qul_add_resource(myapp FILES spinner.png background.png)
							
Image {
    source: "qrc:/background.png"
    Image {
        anchors.centerIn: parent
        source: "qrc:/spinner.png"
        transform: Rotation {
            NumberAnimation on angle { from: 0; to: 360; running: true; loops: Animation.Infinite }
        }
    }
}