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 工具 qmlinterfacegenerator,qmltocpp 和 fontcompiler。
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.qml、Rectangle.qml、Image.qml、ListView.qml、PropertyAnimation.qml、Slider.qml和Button.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 许可证下可用。
了解更多信息。