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.rhkb.cn/news/304533.html

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

相关文章

概率论基础——拉格朗日乘数法

概率论基础——拉格朗日乘数法 概率论是机器学习和优化领域的重要基础之一,而拉格朗日乘数法与KKT条件是解决优化问题中约束条件的重要工具。本文将简单介绍拉格朗日乘数法的基本概念、应用以及如何用Python实现算法。 1. 基本概念 拉格朗日乘数法是一种用来求解…

Golang 开发实战day08 - Multiple Return values

🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴‍♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 教程08 - Multiple R…

第⑬讲:OSD硬盘故障处理实战:从诊断到恢复的全流程指南

文章目录 1.OSD坏盘更换操作2.判断OSD是否出现故障的思路3.模拟osd.5故障4.OSD故障更换硬盘流程4.1.将故障的osd.5从集群中删除4.1.1.从OSD Map中将故障的OSD删除4.1.2.从Crush Map中将故障的OSD删除4.1.3.在OSD列表中将故障的OSD删除4.1.4.将故障的OSD认证信息删除4.1.5.验证集…

羊大师带你了解春季喝羊奶有什么好处

在春季,随着大自然的苏醒,人们的生活方式也逐渐转向更加活跃和健康的模式。在众多健康习惯中,饮用羊奶成为了一个流行的选择,因其独特的营养价值和健康益处受到了广泛关注。羊奶不仅富含高质量的蛋白质和必需氨基酸,还…

用html实现一个动态的文字框

<!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>一个动态的文字框动画</title><link rel"stylesheet" href"./style.css"></head> <body> <link rel…

计算机视觉 | 基于 ORB 特征检测器和描述符的全景图像拼接算法

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本项目实现了基于 ORB 特征检测器和描述符的全景图像拼接算法&#xff0c;能够将两张部分重叠的图像拼接成一张无缝连接的全景图像。 文章目录 一、随机抽样一致算法二、功能实现三、代码解析四、效果展示五、完整代码 一、随机…

MySQL-创建和管理表:基础知识、创建和管理数据库、创建表、修改表、重命名表、删除表、清空表、拓展

创建和管理表 1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库 3. 创建表3.1 创建方式13.2 创建方式23.3 查看数据表结构 4. 修改表4.1 追加一个列4.2 修改一个列4.3…

卷积神经网络(CNN)的数学原理解析

文章目录 前言 1、介绍 2、数字图像的数据结构 3、卷积 4、Valid 和 Same 卷积 5、步幅卷积 6、过渡到三维 7、卷积层 8、连接剪枝和参数共享 9、卷积反向传播 10、池化层 11、池化层反向传播 前言 本篇主要分享卷积神经网络&#xff08;CNN&#xff09;的数学原理解析&#xf…

解决 OpenERP v7 中的报告问题

在 OpenERP v7 中&#xff0c;报告问题可能涉及多个方面&#xff0c;包括报告模板的设计、数据源的配置、报告生成的逻辑等。然后再我们日常使用中还是会遇到各种各样的问题&#xff0c;那么如果出现下面的错误&#xff0c;可以尝试用我的解决方案。 1、问题背景 在使用 OpenE…

微服务-2 Eureka

Eureka 启动页面&#xff1a; 同理再注册完order-service后&#xff0c;刷新启动页面&#xff1a; userservice 启动多台服务&#xff1a; [ 代码 ]&#xff1a;orderService.java&#xff08;用 RestTemplate 调其他服务&#xff0c;用 userservice 代替 localhost:8081&…

LiveGBS流媒体平台GB/T28181常见问题-系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤

LiveGBS系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤 1、系统服务日志1.1、日志目录1.2、配置日志文件个数及记录时间1.3、配置日志文件路径 2、Web 操作日志2.1、配置保留天数2.2、配置不记录操作日志2.1.1、不记录所有2.1.2、不记录指定…

基于SSM+Jsp+Mysql的弹幕视频网站

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

Mybatis分页查询用PageHelper插件

首先看接口文档需求 看响应数据样例&#xff0c;那么咱们先自定义一个bean来满足这个需求&#xff0c;这里定义PageBean实体类 package com.itheima.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.List;//分…

JRT高效率开发

得益于前期的基础投入&#xff0c;借助代码生成的加持&#xff0c;本来计划用一周实现质控物维护界面&#xff0c;实际用来四小时左右完成质控物维护主体&#xff0c;效率大大超过预期。 JRT从设计之初就是为了证明Spring打包模式不适合软件服务模式&#xff0c;觉得Spring打包…

【论文精读】集合级指导攻击:提高视觉语言预训练模型的对抗性可迁移性

文章目录 一、前言&#xff08;一&#xff09;对抗攻击概念&#xff08;二&#xff09;对抗攻击分类&#xff08;三&#xff09;VLP模型&#xff1a;视觉语言预训练模型 二、文章概览&#xff08;一&#xff09;研究动机&#xff08;二&#xff09;主要工作 三、对抗可迁移性的…

探探各个微前端框架

本文作者为 360 奇舞团前端开发工程师 微前端架构是为了在解决单体应用在一个相对长的时间跨度下&#xff0c;由于参与的人员、团队的增多、变迁&#xff0c;从一个普通应用演变成一个巨石应用(Frontend Monolith)后&#xff0c;随之而来的应用不可维护的问题。这类问题在企业级…

第十一届能源与环境研究国际会议-可再生能源走向脱碳化(ICEER 2024)即将召开!

能源和环境是当今世界至关重要的研究和教育领域&#xff0c;持续的气候危机和对可持续发展战略的迫切需求&#xff0c;需要从能源科学到地球工程等广泛领域的变革性工程解决方案和创新。ICEER 2024为来自学术界&#xff0c;研究中心和全球工业界的工程师&#xff0c;研究人员和…

AD转换(模数转换)

一、AD的基本概念 AD转换是将时间连续和幅值连续的模拟量转换为时间离散、幅值也离散的数字量。使输出的数字量与输入的模拟量成正比。 AD转换的过程有四个阶段&#xff0c;即采样、保持、量化和编码。 采样是将连续时间信号变成离散时间信号的过程。经过采样&#xff0c;时间…

生成式AI对UiPath来说是机遇还是挑战?

企业争相通过技术革新来领跑市场&#xff0c;机器人流程自动化&#xff08;RPA&#xff09;技术更是将企业的效率和成本控制推向了新的高度。但当人工智能&#xff08;AI&#xff09;的最新进展——生成式AI登上舞台时&#xff0c;它不仅带来了变革的可能&#xff0c;还提出了一…

Java编程题 | 打印杨辉三角

大家可以关注一下专栏&#xff0c;方便大家需要的时候直接查找&#xff0c;专栏将持续更新~ 题目描述 打印出杨辉三角形&#xff08;要求打印出10行如下图&#xff09; 解题思路 初始化变量&#xff1a;设置一个变量表示行号&#xff0c;从1开始。循环打印杨辉三角形…