Qt 6.1加入多个Qt 5.15好用附加模块

跨平台开发框架Qt 6.1已经发布,这是在Qt 6推出以来第一个次要版本更新,这个更新的重点之一,在于官方把原本Qt 5.15中支持的许多附加模块加到了Qt 6中,包括支持Windows上的COM和ActiveX控件的Active Qt模块,还有一些可视化模块,像是在应用程序增加图表的Qt Charts,以及可将动态与静态资料可视化的Qt Data Visualization,以及能够渲染Adobe After Effects图形和动画的Qt Lottie,现在于嵌入式设备,也可以使用Qt虚拟键盘加入屏幕键盘功能。

Qt在去年底的时候,发布了Qt 6.0,这个新版本加入许多新功能,为的是要更好地支持现代工作负载,除了采用较新的C 语言结构,也使用全新的图形架构,改善2D与3D应用开发体验。但是Qt 6.0遭到诟病的缺点,便是原本Qt 5.15中的许多附加模块,在Qt 6.0都没有提供,而且官方又在2021年1月,突然宣布Qt 5.15 LTS进入商用阶段,使得部分用户处在尴尬阶段,此举引来反弹声浪。

而原本官方预告要到Qt 6.2才支持大多数的模块,现在于Qt 6.1就实现了大部分。Qt 6.1的更新修复了许多针对Qt 6.0或Qt 5.15回应的错误,官方表示,除了加入原本的模块之外,修补错误也是重要的工作,随着Qt 6.2即将到来,修补错误会继续成为官方的重点关注部分,官方计划让Qt 6.2成为Qt 6系列的第一个长期支持版本。

在Qt Core中,多数的更新都是在API中加入更多的新功能,像是加入了removeIf方法,并扩展erase_if支持更多的类别。官方还在QStringView中添加了一些缺少的方法,使得QString API更加完整,另外,Qt加入了溢出安全(Overflow-Safe)的加、减和乘法函数,并且改进16位元浮点数支持。

在Qt 6.0加入的属性绑定,官方也对相关的API进行一些改进。而Qt 6.1另一大更新重点,则是加入能够简化Java、QJniEnvironment和QJniObject集成的新类别,主要用例为Android开发。而在Qt Gui中,现在有一个新的QUrlResourceProvider类别,该类别可避免子类别化QTextDocument,以及避免重新实例loadResource,并且能够被QLabel使用。

在图形显示方面,现在Qt 6.1的Vulkan API打包器,能更好地支持Vulkan 1.1和1.2,并且QColorSpace可以使用自定义传递函数。Qt Quick 3D开始支持变形目标动画,且实例渲染以及3D粒子功能进入技术预览阶段,官方提到,当要在场景中渲染大量相似对象的时候,实例渲染可大幅提高渲染性能,而3D粒子效果则是应用实例渲染的粒子特效。

在Qt Network中,官方加入新的QNetworkInformation类别,该类别公开系统的可访问性,Cookie处理开始支持SameSite功能。官方还提到,他们即将发布Qt for Python更新版本,会作为Qt 6.1的模块支持。这次官方在Qt 6.1加入了一些Qt 5.15中的模块,但还有一些模块仍无法使用,官方提到,Qt 6.2版本还会额外增加2个附加模块。