本文翻译自:Qt for MCUs 2.8 LTS released
原文作者:Qt Group高级产品经理Yoann Lopes
我们很高兴地宣布Qt for MCUs 2.8 LTS版本已发布,该版本带来了激动人心的新变化,如GUI的构建模块、构建工具工作流程的改进、对Infineon TRAVEO T2G微控制器的扩展支持等等。Qt for MCUs 2.8是一个长期支持版本,它能在您的开发过程中提供更强的稳定性。因此,它是所有新项目的首选版本。该版本的标准支持将持续到2025年12月,共计18个月。
您可以在更新日志中找到此版本的完整变更清单。让我们继续往下,了解该版本的亮点吧。
动态布局
我们将Qt Quick Layouts模块添加到Qt Quick Ultralite中,使得创建可调整大小的用户界面变得更加容易。
此新增功能是直接从 Qt 6的同名模块中适配过来的,其包含一系列QML类的子集API:Layout、GridLayout、ColumnLayout和RowLayout。它的行为和命名方式与Qt6兼容,以便您可以在MCU和非MCU平台的应用程序之间重用代码。
与只能排列子元素位置的Row和Column类型不同,布局方法还可以调整它们的大小。这使得它们特别适用于可调整大小和响应式的组件,因此通常情况下,只需要设计一次即可部署到不同屏幕分辨率的设备中。
新增了一个布局示例,供您开发参考。
虚拟键盘(技术预览版)
我们新增了一个功能丰富但轻量级的虚拟键盘组件,后续计划支持所有的常用语言。
文本或数字输入是所有应用类型中最常见的 UI 功能之一,尤其是在配备触摸功能的设备上。创建一个灵活且支持多种语言的虚拟键盘并非易事,为了让您专注于产品的创建而不是编写复杂的组件,我们将Qt Virtual Keyboard模块添加到Qt for MCUs中,其包含与Qt 6中类似模块一致的子功能和API。
该功能在Qt for MCUs 2.8 LTS中作为技术预览版发布。它内置了英语、德语和数字输入的键盘布局,同时支持字符选择窗口、动态语言切换和不同界面尺寸的适配等功能。为了配合这个新组件,我们添加了TextInput QML类型,它也支持接收物理按键。
在未来的版本中,该模块将升级为稳定版,虚拟键盘和TextInput组件将增加更多功能,如支持更多语言、全样式和布局自定义以及文本选中。
在您的应用程序中使用它非常简单,您可以在新的text_input示例中了解如何使用。
使用第三方构建工具加快工作流程
qmlprojectexporter工具已更新了新的导出选项,使得可以从Qt for MCUs项目创建自带的CMSIS-Pack和CMake包。
虽然Qt Creator提供了一个现成的环境来使用Qt for MCUs构建应用程序(尤其适合在评估板上进行原型设计或使用桌面模拟器开发GUI),但许多用户在为最终目标设备开发完整应用程序时,会使用其他嵌入式IDE或构建系统。为了简化这个工作流程,我们在Qt工具中添加了导出选项,以生成可以导入其他项目的包,例如用于NXP MCUXpresso IDE、Zephyr或 ESP-IDF。
CMSIS-Pack
由qmlprojectexporter生成的CMSIS-Pack包含在支持此标准的IDE中构建Qt for MCUs GUI所需的一切。包括Qt Quick Ultralite头文件和库、目标平台的源代码,以及在图形资产更改时生成或重新生成GUI源代码的逻辑(QML、图像、字体)。
您可以在此页面和更新的NXP i.MX RT1170快速入门指南中了解具体如何使用。
CMake包
通过新的CMake导出选项,您可以创建一个自带的包,其中包含与 CMSIS-Pack相同元素但适用于任何基于CMake构建的项目,不需要使用 Qt for MCUs自己的CMake构建系统。这使得与Zephyr或ESP-IDF的集成更加容易。
您可以在本指南中了解更多关于此项的信息。
在未来的版本中,我们将添加更多选项,以提供类似的工作流程用于如Infineon Modus Toolbox、STM32CubeMX/IDE、Renesas e² studio、IAR Embedded Workbench 或 Arm Keil MDK 等工具中。
扩展对 Infineon TRAVEO T2G 的支持
Infineon TRAVEO T2G微控制器系列的平台接口已得到扩展,增加了硬件加速JPEG解码的集成参考以及对全新4M Lite Kit评估板的支持。
TRAVEO T2G 4M Lite Kit
TRAVEO T2G 4M Lite Kit是Infineon基于CYT3DL微控制器新的低成本评估板。它支持板载USB调试探针和通过USB方式的RGB显示输出,可以将图像以流式传输的方式传到上位机。这在GUI原型设计和开发过程中特别方便,因为它不需要物理显示器,并且可以配置到不同分辨率的显示屏。下图展示了在4M Lite Kit上渲染并用VLC播放器工具通过数据流的方式接收显示的1280x480的应用程序。
该评估板已加到Qt for MCUs 2.8 LTS版本中的二级支持设备中。有关如何使用USB显示的功能说明,请参见此处。
硬件加速 JPEG 解码
CYT4DN和CYT4EN微控制器都包含一个图像解码器,其能够实时解码高分辨率的JPEG帧数据。这使得板卡可以在保持内存使用最小的情况下实现开机动画、预渲染3D动画和从不同设备传来的流式数据动画。
Qt for MCUs中的imagedecoder示例已扩展集成了TRAVEO T2G JPEG 解码器,提供如何将其应用于QML中的Images和AnimatedSprites组件的参考方案。
更多内容!
我们继续努力对从QML生成C++的代码进行额外优化,通过减小二进制文件的.text段和减少整体flash内存的占用,使Qt Quick Ultralite更加轻量化。正因如此,与2.7相比,使用Qt for MCUs 2.8 LTS编译的相同应用程序平均缩小了1%到3%,与2.5 LTS相比平均小4%到10%。
Monotype Fontmap Editor工具的3.1.1版本现在已经包含在Qt for MCUs中。它添加了一项新的子功能,可以在使用动态Spark字体引擎时从字体中删除未使用的glyph数据。当某些应用程序只需要有限的字符集时,这种方式可以节省多达几MB的flash。
最后同样不能忽视的,Qt for MCUs 2.7中作为技术预览版引入的显示旋转配置功能已升级为稳定版。新增了优化措施来最大程度地降低运行时的性能下降,同时对应的文档也进行了改进。
接下会有什么
2024年的最后一个功能发版将是11月的Qt for MCUs 2.9。我们计划新亮点包括:
- 应用于嵌入式Linux的Qt Quick Ultralite,这是一个面向资源有限的 SoC/MPU 系统的轻量级替代方案,
- 改进虚拟键盘,将增加了更多语言并支持自定义布局,
- 集成Zephyr RTOS 和构建系统,
- 支持QML的List类。
明年还将推出更多激动人心的新功能,请继续关注更新。