Qt for MCUs 2.7正式发布

本文翻译自:Qt for MCUs 2.7 released

原文作者:Qt Group高级产品经理Yoann Lopes

翻译:Macsen Wang

Qt for MCUs的新版本已发布,为Qt Quick Ultralite引擎带来了新功能,增加了更多MCU平台的支持,并且我们对GUI框架进行了多项改进,以适应资源受限的嵌入式系统。

您可以在变更日志中找到此版本的完整变更列表。接下来,我们将介绍此版本的亮点。

更便捷的2D形状处理

我们添加了新的QML API到Qt Quick Ultralite,这些API从传统Qt中进行了适配,并可直接兼容,以简化在应用程序中实现两种常见UI元素(弧形和渐变)的过程。

ArcItem

为了在Qt for MCUs应用程序中绘制弧形,Qt Quick Ultralite已经拥有了来自Shapes模块的PathArc QML类型,它提供了一种灵活且通用的方式来实现任何类型的椭圆弧,但是在只需要绘制两个角度(起始和结束)之间的圆弧时,缺乏便利性。新的ArcItem类型从Qt Design Studio适用于传统Qt的组件进行了调整,满足了这一需求,并提供了一种快速实现诸如仪表或圆形进度指示器等UI组件的方法。

您可以自行查看并尝试新的studio_components示例以了解如何使用它。

渐变

在此版本之前,Qt for MCUs中添加渐变的主要选项要么是将渐变预先渲染为图像,要么是使用PaintedItem进行基于自定义C++绘制的实现。为了提供更多便利性和灵活性,我们将传统Qt Quick中的Gradient类型适配到Qt Quick Ultralite中可用。它可以用于填充Rectangle、Shape和ArcItem,使用任意数量的颜色停止点进行线性渐变。

现有的shapes示例和watch demo已经更新,演示了如何使用这种新类型。

集成任意格式的资源

我们增加了对自定义图像格式支持,以提高使用的灵活性。到目前为止,Qt Quick Ultralite资源编译器在进行编译时预处理图像时,解码并在需要的时候重新进行压缩。这导致用户无法启用自定义格式的图像的即时解码(例如,在运行时从远程服务器下载的图像)或某些格式可能在特定MCU上具有硬件加速(例如JPEG解码)。为了克服这个限制,我们添加了一个新的ImageDecoder API,用于注册自定义图像格式和匹配解码器。这使得可以在应用程序中包含自定义解码器接口(硬件或软件),并利用硬件提供的特有的解码能力,或使用特定用途的图像格式。

您可以在相关指南中阅读有关集成新图像格式所需步骤的更多信息。

即时JPEG解码

作为新的ImageDecoder API的示例实现,我们添加了对某些STM32硬件平台上可用的硬件加速JPEG解码器的支持。该实现演示了如何将JPEG解码器注册为自定义格式,并为其提供了硬件解码接口。在支持的STM32平台上使用这种方法可以节省大量的用于存储的非易失性存储器资源,并避免在运行时解压缩它们时所造成的性能开销。这对于由许多必须存储在flash中并按需解码的帧组成的复杂动画特别有帮助(例如启动动画、视频或类似GIF的动画)。

我们已更新我们的Sprite_Animation示例,以利用支持的STM32 F7和H7平台上的HW JPEG解码器。

轻松针对不同的显示方向旋转GUI(技术预览版)

我们添加了一个新的项目属性,可以在几乎没有运行时性能损耗的情况下轻松对GUI内容应用静态旋转。

当设备的显示不处于其自然方向时,这个功能可以提供极大的便利,例如在纵向显示面板(例如480x800)上显示横向UI(例如800x480)。这中情况可能是基于多个显示屏之间的成本考虑、组装限制或其他各种原因导致的。在这种情况下,除非显示屏控制器能够直接处理所需的旋转,否则您需要根据设置将GUI内容旋转90度、180度或270度。

现有的一些解决方案包括对GUI应用运行时旋转,这可能会显著降低大多数MCU的应用帧率,或者设计具有内置旋转的布局和资源,以避免运行时性能损失,但这意味着工作流程非常繁琐。我们设计的解决方案既简单——只需设置一个项目属性,无需更改QML代码或GUI资源——又高效,同时可以避免运行时的性能损失。

这个功能在Qt for MCUs 2.7中作为技术预览版发布,并计划在Qt for MCUs 2.8 LTS中升级为稳定版。虽然在下一个版本中不希望更改API,但当前版本存在一些限制,尚未实现所有优化,这意味着在该版本中应用旋转可能会对帧率和CPU使用率产生影响。

您可以在配置显示旋转文档页面上获取更多关于此功能的信息。

新设备的支持

作为这个版本的一部分,我们已经添加了一些新的MCU供您尝试!

  • Renesas RA系列的新旗舰MCU——基于Cortex M85的RA8D1——现在作为Tier-2技术预览平台启用。稳定版本会在即将发布的版本中推出。
  • 适用于可穿戴设备的超低功耗MCU Ambiq Apollo4 Plus(带显示屏扩展板)现在作为Tier-3平台推出。
  • Infineon TRAVEO™ T2G CYT4EN是一款提供MPU级性能和图形能力的MCU,支持高分辨率显示,最高可达2880 x 1080,现在作为Tier-2技术预览平台可用。

更多内容

我们不断努力使Qt Quick Ultralite尽可能轻量。在之前的版本中,我们已经发布了相关的优化措施,进一步优化了从QML生成的C++代码,使大多数应用的.text节的大小减少了3%~7%。

改进了FreeRTOS多任务示例,以演示多个线程之间的双向通信,更加贴近实际使用场景。这使得在Qt Quick Ultralite和后端线程之间的数据同步更加容易。

在Qt Design Studio 4.4中进行了许多提升,重点是提供一个仅限于Qt for MCUs可用功能的GUI设计环境,以防止误生成仅对传统Qt有效的QML代码。

当为qmlproject属性分配的值无效时,改进了qmlprojectexporter工具的错误报告。

后续计划

Qt for MCU 2.8 长周期支持版(LTS) 将于 2024 年 5 月底发布。您可以一如既往地期待一系列新功能和改进,从而更快地创建用于 MCU 的高级图形用户界面。在下一版本中,我们计划包含的一些亮点如下:

  • 为了极大地简化创建可调整大小的用户界面的流程,我们为Qt Quick Ultralite提供了Qt Quick Layouts的子集。
  • 新增了TextInput QML类型
  • 这是一个功能齐全的虚拟键盘,具有与智能手机上一致的用户体验。
  • 支持CMSIS-packs,方便将Qt for MCUs与第三方嵌入式IDE项目进行集成。
  • 支持Zephyr RTOS和构建系统。

这还不是全部,我们计划在今年和以后进行更多开发,旨在提高您的生产力,并将嵌入式处理器的上所能实现的效果推向极限。请持续关注更多更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache SeaTunnel 社区 3 月月报

各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 3 月月报来啦!这里将记录 SeaTunnel 社区每个月的重要更新,并评选出月度之星,欢迎关注。 SeaTunnel 月度 Merge Stars 感谢以下小伙伴 3 月为 Apache SeaTunnel 做的精彩贡献&…

【个人使用分享】教你大厂云服务器如何选 联机不卡顿 幻兽帕鲁小白一键部署 16G低至26 续费1.5折

更新日期:4月11日(半年档 价格回调,京东云采购季持续进行) 本文纯原创,侵权必究 《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实时更…

计算机网络——WEB服务器编程实验

实验目的 1. 处理一个 http 请求 2. 接收并解析 http 请求 3. 从服务器文件系统中获得被请求的文件 4. 创建一个包括被请求的文件的 http 响应信息 5. 直接发送该信息到客户端 具体内容 一、C 程序来实现 web 服务器功能。 二、用 HTML 语言编写两个 HTML文件,并…

面向对象设计原则实验“依赖倒置原则”

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 (开闭原则、里氏代换原则和依赖倒转原则的三个实例很相似,原因是它之间的关系很紧密,在实现很多重构时通常需要同时使用这三个原则。开闭…

【RealSense】Ubuntu20.04 安装 Intel RealSense ROS 并使用 D435i 测试

【RealSense】Ubuntu20.04 安装 Intel RealSense ROS 并使用 D435i 测试 1 本机环境2 安装流程3 存在的 bug3.1 Resource not found: rgbd_launch 1 本机环境 Ubuntu20.04ROS Noetic 2 安装流程 参考文档: Link 安装 Intel RealSense™ SDK 2.0,参考上一篇文章: L…

『研学倒计时』日本《极致产品力》顾问式研学再出发!

信心行动》共建中国食品行业风向标 2024年,信心比黄金还重要! 深度学习日本就是最佳路线。过去五年,许多中国企业开始研究与借鉴日本,元气森林、东方树叶、奈雪的茶、RIO鸡尾酒、蒟蒻果冻、丸美美妆、花印、名创优品.….从日本“失去的20年”中吸收逆势增长经验。 一、研学背…

快速列表quicklist

目录 为什么使用快速列表quicklist 对比双向链表 对比压缩列表ziplist quicklist结构 节点结构quicklistNode quicklist 管理ziplist信息的结构quicklistEntry 迭代器结构quicklistIter quicklist的API 1.创建快速列表 2.创建快速列表节点 3.头插quicklistPushHead …

【Python】控制台进度条

在Python开发中,有时需要向用户展示一个任务的进度,以提供更好的交互体验。下面我将展示如何使用Python来创建一个简单的控制台进度条。 效果: 代码: import time import sys def print_progress_bar(completed, total, length…

STM32 定时器外部时钟与循迹模块

1、上篇文章介绍了定时器使用内部时钟信号计数,实现计数、更新中断等功能。 2、可不可以利用定时器对来自外部的信号进行计数?也就是对输入io的信号计数? 3、可以 1、定时器外部时钟 STM32的通用定时器和高级定时器都将外部信号引入…

【Algorithms 4】算法(第4版)学习笔记 24 - 5.5 数据压缩

文章目录 前言参考目录学习笔记1:介绍2:游程编码 run-length encoding2.1:介绍2.2:Java 实现3:霍夫曼压缩 Huffman compression3.1:变长前缀码 variable-length codes3.1.1:介绍3.1.2&#xff1…

【IC前端虚拟项目】验证环境方案思路和文档组织

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 对于mvu的验证环境,从功能角度就可以分析出需要搭建哪些部分,再看一下mvu的周围环境哈: 很明显验证环境必然要包括几个部分: 1.模拟idu发送指令; 2.模拟ram/ddr读写数据; 3.rm模拟mvu的行为; …

无缝集成:使用Spring Boot和Vue实现头像上传与回显功能

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

查询category的id存在于项目表中category_id_list的json array字段中

表category 表project 查询category的id存在于项目表中category_id_list的json array字段中。

4.11Qt

完善网络聊天室客户端实现 工程文件 QT core gui network 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket> #include<QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…

前端三剑客 —— JavaScript (第九节)

目录 内容回顾&#xff1a; 1.事件解除 2. Ajax jQuery选择器 回顾CSS选择器 CSS选择 1.基本选择器 2.包含选择器 3.伪类选择器 4.伪元素选择器 5.属性选择器 jQuery 库 jQuery 动画 系统动画 自定义动画 常见API操作 内容回顾&#xff1a; 1.事件解除 如果是使…

头歌-机器学习 第9次实验 随机森林

第1关&#xff1a;Bagging 任务描述 本关任务&#xff1a;补充 python 代码&#xff0c;完成 BaggingClassifier 类中的 fit 和 predict 函数。请不要修改 Begin-End 段之外的代码。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 什么是 Bagging&#xf…

李廉洋;4.11#黄金,WTI原油#行情走势分析策略。

美国银行预计&#xff0c;在今天召开的欧洲央行会议上不会有重大的政策变化&#xff0c;但欧洲央行正逐渐接近开始降息&#xff0c;尽管它采取的是一种谨慎的、依赖数据的方式。虽然欧洲央行对降息轨迹的信心不断增强&#xff0c;但降息的具体速度和幅度仍未公布&#xff0c;而…

QT系列教程(2) 创建项目和编译

新建Qt Widgets应用 我们启动qt creator 创建项目&#xff0c;选择Qt Widgets应用 接下来选择项目目录&#xff0c;项目名字就叫helloworld 构建系统选择qmake 我们创建一个名字为HelloDialog的类&#xff0c;继承于QDialog 构建套件选择你们安装的就行了&#xff0c;我这里选…

ELK及ELFK排错

目录 一、ELK及ELFK排错思路 1.1filebeat侧排查 1.2logstash侧排查 1.3ES、kibana侧问题 一、ELK及ELFK排错思路 1.1filebeat侧排查 第一步&#xff1a;排查filebeat上的配置文件有没有写错&#xff0c;filebeat的配置文件是yml文件&#xff0c;一定要注意格式。 第二步…

python botos s3 aws

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html AWS是亚马逊的云服务&#xff0c;其提供了非常丰富的套件&#xff0c;以及支持多种语言的SDK/API。本文针对其S3云储存服务的Python SDK&#xff08;boto3&#xff09;的使用进行介绍。 …