Qt 6.7功能介绍

Qt 6.7为我们所有喜欢在构建现代应用程序和用户体验时获得乐趣的人提供了许多大大小小的改进。一些新增内容作为技术预览发布,接下来我们就一起来看看吧:

将C++20与Qt一起使用

对于许多编译器工具链来说,C++20仍然是可选的和实验性的,目前我们看不出有任何理由要求C++20构建或使用Qt。然而,我们希望我们的用户能够在自己的代码中随心所欲地使用新标准。在C++17和C++20之间进行的一些更改可能需要对现有代码进行调整,并且需要在Qt中进行调整。对于Qt 6.7,我们继续进行调整,使Qt感觉像是现代C++堆栈的自然组成部分。

对C++20语言的一个有益补充是三元比较运算符<=>(),也称为“宇宙飞船”运算符。实现此运算符时,需要类型指定其排序类别。在问题6.7中,我们添加了问题:{strong,weak,partial}_ordering类作为相应std::*_ordering类型的C++17兼容实现。对于类型作者,Qt6.7提供了可用于实现关系运算符的辅助宏。这些宏在C++20版本中将扩展到运算符<=>(),在C++17版本中将回退到所有六个运算符。

std::span是C++20中标准库的一个有用补充,我们希望自己使用它,也希望Qt用户可以使用它。作为连续对象序列的非所有权表示,跨度在构建和传递函数调用方面很便宜,而有了QSpan,我们现在有了这种类型的C++17实现。

我们还继续为相关的Qt API添加std::chrono支持。Qt网络API中的传输超时现在可以指定为std::chrono类型和文字,例如5秒5秒。

支持2D和3D可视化的Qt图形

在Qt 6.6中,我们介绍了Qt Graphs的第一个技术预览,它是一个现代Qt 6框架,用于在硬件加速渲染架构的基础上可视化数据。

在Qt 6.7中,除了自Qt 6.6以来已经提供的3D可视化之外,我们还增加了对2D条形图、折线图和散点图的支持。该模块与Qt Quick动画和效果集成,并提供主题化和基于处理程序的交互API。

Qt Graphs仍在积极开发中,并将继续作为本版本的技术预览。我们对数据API和体系结构进行了一些实质性的改进,以减少内存分配量,并与Qt的抽象项模型保持一致。在我们将其从Qt 6.8 LTS的技术预览中删除之前,我们期待着更多的架构和API改进,并期待着听到您的用例和愿望,以便我们能够确保我们能够以最佳方式适应它们。

连接、协议和分布式体系结构

随着QHttpHeaders、QRestAccessManager和QRestReply作为REST特定用例的新类的引入,分布式系统的开发人员现在可以更高效地使用HTTP和RESTAPI。

Qt-gRPC为客户端、服务器或双向流式调用引入了新的类,允许在值更改时自动触发无缝消息传递。新的Interceptor API可以为选定的gRPC消息添加回调函数,例如实现缓存或日志记录。使用Qt 6.7中的Qt Protobuf,开发人员现在可以将Protobuf消息序列化到JSON和从JSON序列化Protobuf,并受益于支持可选字段的生成器改进,并保留枚举值的大小写。

这些新功能使开发人员更容易使用Qt构建健壮且可扩展的应用程序。当完成对HTTP/2的支持工作时,Qt-gRPC和Qt-Protobuf将从Qt6.8版本的技术预览中毕业。

矢量图形

自推出以来,QtSVG一直支持SVG 1.2 Tiny配置文件的静态功能。在过去的几年里,这个特定的概要文件变得越来越不相关,创作工具在很长一段时间里都没有遵循任何特定的概要。对于Qt 6.7,我们分析了SVG 1.1和2.0中哪些静态元素常用于SVG资产,并添加了对我们最常见的功能的支持:<symbol>、<marker>、<pattern>、<mask>和各种<filter>元素。使用6.7中的Qt-SVG,应用程序可以呈现与UI构建器相关的大多数SVG文件。

如果需要完全支持SVG 2.0,那么Qt-WebEngine模块仍然是正确的选择。

除了将SVG作为预渲染的像素图导入Qt UI之外,我们还致力于将矢量图形资源直接导入Qt Quick场景图。新的(实验性的)svgtoqml工具将SVG转换为QML,我们对Qt快速形状模块进行了改进,以实现更高质量的渲染。现在完全支持在Qt 6.6中作为技术预览引入的曲线渲染器,并且可以使用preferredRendererType属性启用。

字体和图标的改进

在Qt 6.6中介绍了对排版字体功能的支持之后,我们又在Qt 6.7中支持了可变字体。可变字体将单个字体的变体组合到一个字体文件中,允许应用程序选择任何“权重”或“草书”值。根据字体设计者创建的可变轴,字形可能会被动画化或显示不同的层。在Eskil的博客文章中关于可变字体支持和其他文本改进的信息。

API现在是稳定的,并且始终使用新的QFont::Tag类来以类型安全的方式指定字体特征和轴名称。

对现代字体的改进支持使我们能够添加对本地图标库的支持,这些图标库通常通过字体提供。QIcon::fromTheme实现现在将XDG图标名称映射到苹果、Windows和安卓平台上的本地图标库中的相应符号。对于未来,我们计划使用字体API的新功能来添加对更多图标功能的支持,例如图标的轮廓或填充版本。

具有原生UI元素和渲染的混合应用程序

在桌面和移动平台上,应用程序通常需要组合来自不同技术和框架的UI元素。Qt使用每个平台上的本地技术并与之紧密集成,以创建基本的UI元素,如窗口,长期以来,在Qt-Widgets应用程序中使用其他框架中的UI元素一直是可能的。

有了Qt6.7,我们现在也添加了对将原生窗口嵌入QtQuick场景的支持。这允许在Qt Quick UI中使用本地控件,如AppKit的MapView或Windows媒体播放器,并具有正确的定位和堆叠。通过对窗口进行分层,QtQuick UI元素也可以覆盖在本地组件的顶部。

此外,应用程序现在可以使用Qt支持的任何图形API,通过分别使用QRhiQuickItem和QRhiWidget类,将渲染代码添加到Qt-Quick或Qt-Widgets应用程序中。虽然这样的代码通常可能不是完全跨平台的(因为Vulkan、OpenGL、Direct3D或Metal在所有可能的目标平台上都没有得到同样好的支持),但它可以集成使用这些技术的第三方框架,或为任何特定平台编写高度优化的渲染代码。

更新的平台支持

与每一个次要版本一样,我们都更新了受支持平台的列表,以包括相关操作系统的最新稳定版本。在台式机和移动设备上,Qt 6.7完全支持macOS 14和iOS 17、Windows 11 23H2和Android 14。RedHat 9.2、Open Suse 5.15、Suse Linux Enterprise Server 15是最新支持的Linux发行版(Ubuntu仍在22.04版本)。安装程序提供了使用基于LLVM的MinGW工具链的Windows预构建二进制文件,ARM上的Windows和Linux都可以作为技术预览。

在嵌入式上,Boot2Qt参考图像支持Yocto 4.3 Nanfield。作为实时操作系统,Qt 6.7现在包括在iMX6硬件上使用SR 24.03的VxWorks 7的纯源代码技术预览,并且可以从在线安装程序中获得QNX 7.1的预构建二进制文件。

新的和改进的示例和演示

除了在框架中进行改进外,我们还策划了Qt附带的示例和演示应用程序,并刷新了UI和编码风格。我们还创建了一些新的应用程序,展示了当设计师和开发人员合作将Qt的UI、可视化和后端功能相结合时可能发生的事情。

Lightning Viewer示例使用Qt Location和Qt Quick Controls来可视化通过Qt WebSocket接收的模拟闪电数据。控件的样式完全是在Figma中创建的。

完全重新创建的StocQt示例使用Qt图来可视化基于NASDAQ-100的股票数据。示例的UI是使用Qt Design Studio创建的,如果通过设置对话框提供了API键,则数据是从财务建模准备服务接收的实时信息。

新的OSM Buildings示例将Qt Quick 3D与Qt Positioning和Qt Network相结合,以实现从OpenStreetMap服务接收的建筑物地图数据的3D查看器。

虚拟助理在用户界面中越来越受欢迎,新的虚拟助理示例显示了通过时间轴动画将3D模型栩栩如生是多么容易。

最后但同样重要的是,新的“体积”渲染示例使用Qt Quick 3D中对3D纹理的新支持来实现体积光线投射。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Git实战】如何将本地仓库推送至Github(windows版)?

最近使用Go语言开发项目&#xff0c;想寻找位操作相关的工具包。找了一圈没有合适的&#xff0c;因此自己写了一个。又想将其推送到Github上&#xff0c;中间逢山开路&#xff0c;遇水搭桥&#xff0c;终于成功将本地Git仓库和Github进行了关联。现将我的方法公之于众&#xff…

如何在JavaScript/Vue中获取当前时间并格式化输出(精确到时分秒)

如何在JavaScript/Vue中获取当前时间并格式化输出&#xff08;精确到时分秒&#xff09; 不只是树&#xff0c;人也是一样&#xff0c;在不确定中生活的人&#xff0c;能比较经得起生活的考验&#xff0c;会锻炼出一颗独立自主的心。在不确定中&#xff0c;就能学会把很少的养分…

二、使用插件一键安装HybirdCLR

预告 本专栏将介绍如何使用这个支持热更的AR开发插件&#xff0c;快速地开发AR应用。 插件简介 通过热更技术实现动态地加载AR场景&#xff0c;简化了AR开发流程&#xff0c;让用户可更多地关注Unity场景内容的制作。 热更方案 基于HybirdCLR HybridCLR是一个特性完整、零成…

数据结构之栈的超详细讲解

目录 引言 一.栈的概念 二.栈的结构 三.栈的实现 栈结构的实现 栈操作函数的声明 栈中方法的实现 栈的初始化 栈的销毁 入栈 出栈 取栈顶元素 判断栈中是否为空 获取栈中数据个数 四.测试 代码展示: 结构展示: 五.小结 六.完整代码 Stack.h Stack.c text…

安卓手机平板使用Termux+Hexo搭建本地博客站点并实现无公网IP远程访问

文章目录 前言1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 本文主要介绍如何在安卓手机平板Termux中安装个人hexo博客并结合cpolar内网穿透工具&#xff0c;实现远程访问本地搭建的博客站点&#xff0c;无需公网IP。 Hexo 是一个用 Nodejs 编写的快速、简洁且高效…

STM32的ADC详解

ADC即模拟数字转换器&#xff0c;通常用于将外部的模拟量信号转换为数字信号。STM32的ADC是12位逐次逼近型的模拟数字转换器&#xff0c;最大可以计数到4095&#xff0c;有18个通道&#xff0c;16个外部通道和2个内部通道。 ADC框图 ADC的功能框图可以分为七个部分&#xff1a…

6个让你的活动策划成倍回报的策略-华媒舍

活动策划是一个集思广策、全方位考虑的过程&#xff0c;只有通过科学合理的策略规划&#xff0c;才能在有限的资源下取得最大的回报。本文将分享六个让你的活动策划成倍回报的策略&#xff0c;包括目标设定、策划团队、预算控制、宣传推广、参与体验和后期回顾。 1. 目标设定 …

基于LMV358的负电源架构

嘿UU们&#xff0c;中午好啊&#xff01;吃了没&#xff1f;算算时间我的餐桌上应该快上杨梅和鱼胶冻了。 今天看某群&#xff0c;突然想到Jim williams的书里一个架构&#xff0c;但老爷子的东西是正负输出的&#xff0c;而且略微有点麻烦&#xff0c;我就想怎么样整个更适合…

【小笔记】streamlit使用笔记

【小笔记】streamlit使用笔记 1.streamlit是什么&#xff0c;为什么要用它&#xff1f; 一句话&#xff0c;这个东西是一个python的可视化库&#xff0c;当你想要给你的程序添加个web界面&#xff0c;而又不会或不想用前端技术时&#xff0c;你就可以考虑用它。 类似的可视化库…

论文AI率太高怎么办?笔灵aigc去痕AIGC率直降60%

随着 AI 技术迅猛发展&#xff0c;各种AI辅助论文写作的工具层出不穷&#xff01; 为了防止有人利用AI工具进行论文代写&#xff0c;在最新的学位法中已经明确规定“已经获得学位者&#xff0c;在获得该学位过程中如有人工智能代写等学术不端行为&#xff0c;经学位评定委员会…

初识Java的main方法

创建一个Java文件 main方法以及用cmd运行程序的过程 面试题JDK\JRE\JVM之间的关系 注意事项 解析String[ ] args 我们想知道String[ ] args里面到底是什么&#xff0c;我们可以用for循环遍历这个数组 Java代码结构 编写Java程序时可能会遇见的错误 注释 注释是为了让代码更…

音频系统模块级实验

加zkhengyang进数字音频系统研究开发交流答疑群(课题组) 1 购买ADC-I2S模块&#xff0c;购买I2S-DAC模块 进行音频系统搭建&#xff0c;可加深对i2s音频总线的理解 2 用电脑的音频输出进行实验

[JAVASE] 类和对象(一)

目录 一.类的基本定义 1.1 类与对象 1.2 类的定义 二. 类的实例化 2.1 创建引用 三. 类中成员的访问 3.1 基本实现 3.2 this引用 四. 构造与初始化 4.1 初始化 4.2 构造方法 五. 总结 一.类的基本定义 1.1 类与对象 类对应着对象 1.2 类的定义 二. 类的实例化 2.1 创建引用…

WPS被指套娃式收费!我快用不起免费的中国互联网了……

接触互联网二十余年&#xff0c;小柴发现&#xff0c;中国互联网与国外互联网有一个很大的区别。 即国外的互联网一般都是收费的&#xff0c;比如杀毒软件、办公软件&#xff0c;以及下载各种APP、游戏&#xff0c;看个视频&#xff0c;基本上都是要单独付费购买的&#xff0c…

2024华为数通HCIP-datacom最新题库(变题版)

请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了&#xff0c;如果你准备去考试&#xff0c;还是用的之前的题库&#xff0c;切记暂缓。 H1…

Linux(CentOS7)离线使用安装盘部署Telnet

[在线工具网 - 各类免费AI工具合集&#xff0c;免费pdf转word等](https://www.orcc.online) https://orcc.online 挂载镜像CentOS-7-x86_64-DVD-1810.iso到/mnt下&#xff08;其他位置也行&#xff09;&#xff0c;命令如下&#xff1a; mount /dev/sr0 /mnt 安装包默认在Pa…

RabbitMQ是怎么做消息分发的?——Java全栈知识(14)

RabbitMQ是怎么做消息分发的&#xff1f; RabbitMQ 的消息分发分为五种模式&#xff1a;分别是简单模式、工作队列模式、发布订阅模式、路由模式、主题模式。 1、简单模式 publisher 直接发送消息到队列消费者监听并处理队列中的消息 简单模式是最基本的工作模式&#xff0c;…

ubuntu中的docker记录(5)——如何使用阿里云的镜像加速配置docker镜像加速器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、镜像加速器介绍1. 什么是docker镜像加速器&#xff1f;2. 为什么要配置镜像加速器&#xff1f; 二、配置镜像加速器1. 注册阿里云账号2. 注册镜像容器服务3…

Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

前言 上一篇文章带你实现了Go-Zero和goctl&#xff1a;解锁微服务开发的神器&#xff0c;快速上手指南&#xff0c;本文将继续深入探讨Go-Zero的强大之处&#xff0c;并介绍如何使用goctl工具实现模板定制化&#xff0c;并根据实际项目业务需求进行模板定制化实现。 通过本文…

CSP-j 计算机硬件

计算机系统 计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理器、存储器和外部设备等&#xff1b;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。 主要技术指标 字长&#xff1a;字长是指CPU能够同…