C

Qt Quick Ultralite 工具

Qt Quick Ultralite 工具链围绕 CMake 和 QmlProject 构建。构建过程从 CMake 配置阶段开始,在该阶段,使用应用程序的可配置文件 CMakeLists.txt 和 Qt Quick Ultralite 软件包的 CMake 文件来准备构建文件。实际的构建过程取决于所选的 CMake 生成器。

构建过程演示

Qt Quick Ultralite 构建过程通过一个示例应用程序演示,该应用程序通过蓝牙连接到手机并获取联系人列表。该项目包括以下文件

文件描述
Main.qml定义主应用程序视图。
QML 文件定义应用程序用户界面。
C++ 源文件定义视觉元素的自定义数据类型,例如 ListView
C/C++ 源文件定义应用程序逻辑。
main.cpp定义 main(),该函数使用 Qul::Application 来启动 Qt Quick Ultralite。
图像应用程序使用的图像资源。
字体应用程序使用的字体文件。
CMakeLists.txt项目配置文件。
demo.qmlprojet项目的配置文件。

以下图表提供了示例应用程序构建过程的概述

使用 Qt Quick Ultralite 工具生成代码

Qt Quick Ultralite 提供生成所需额外代码的工具。更多信息,请参阅 qmlprojectexporter 工具 qmlinterfacegeneratorqmltocppfontcompiler

qmlinterfacegenerator

qmlinterfacegenerator 解析 C++ 头文件以获取自定义 QML 元素。例如,这是为了在 QML 和应用程序业务逻辑层之间提供连接。

qulrcc

《qulrcc》资源编译器从源图像中生成优化的原始数据缓冲区。QmlProject的ImageFiles.files属性将它们添加到构建中,其他ImageFiles属性可用于配置资源属性。

优化过程取决于平台和配置。例如,优化可能会降低颜色深度,用阿尔法图替换图像,移除较大的透明区域,并进行混色。

资源配置以JSON文件的形式传递给qulrcc,该文件由qmlprojectexporter工具生成。资源编译器通过生成包含资源描述的单独JSON文件来告知qmltocpp可用的资源。

qmltocpp

qmltocpp工具提供以下功能

  • 它从提供QmlFiles.files的�件中构建QML对象模型。qmltocpp工具的输入如下
    • 应用程序的QML代码。
    • qmlinterfacegenerator生成的文件。
    • 与Qt Quick QML元素或控件对应的Qt Quick Ultralite接口文件。例如,Item.qmlRectangle.qmlImage.qmlListView.qmlPropertyAnimation.qmlSlider.qmlButton.qml
    • qulrcc生成的资源描述。
  • 它分析QML应用程序代码中使用的图形资产,并从中学生成优化的原始数据缓冲区。在示例中,qmltocpp生成avatar.png。优化过程取决于平台、配置和使用情况。例如,优化可能会降低颜色深度、替换成阿尔法图、移除轮廓透明区域和混色。
  • 它分析文本元素的使用情况,并生成包含文本和字体描述的JSON文件,该文件随后作为fontcompiler工具的输入。
  • 它用生成的C++代码替换JavaScript代码。
  • 它生成绑定、状态和过渡代码。
  • 它结合上述所有功能,生成C++头文件和源文件。

fontcompiler

fontcompiler工具读取文本和字体描述的JSON文件,并为所选的字体处理子系统生成C++代码。有关更多详细信息,请参阅文本渲染和字体

qmlprojectexporter

qmlprojectexporter作为主工具用于列出输入文件以及确定输出内容的配置,这些配置可能涉及优化、前端引擎、资源压缩等。有关qmlprojectexporter的详细说明以及项目选项的完整列表,请参阅QmlProject手册

它还作为其他工具的包装器,请参阅构建过程图

它提供了一种替代CMake的方式,以更好地与其他构建系统集成。有关更多信息,请参阅qmlprojectexporter

编译阶段

代码生成后,编译开始。编译器的输入如下

  • 应用程序的C++和C代码。
  • 生成的文件。
  • Qt Quick Ultralite的公共和内部头文件。例如,提供了模板类(如Property、Signal)和元素(如Rectangle和Image)的头文件。

链接到 Qt Quick Ultralite 库

最终,您需要将 Qt Quick Ultralite 库连接为静态链接。根据您的目标平台,链接会产生以下结果

  • 如果您的目标平台是桌面,则生成程序可执行文件。
  • 一个图像文件,例如 *.elf、*.hex、*.run 等,您可以将其烧录到目标 MCU 设备。

在某些 Qt 许可证下可用。
了解更多信息。