立足中国创新 迎接工业4.0

EMBRACE THE NEW ERA OF INDUSTRY

Qt商业版 | Qt 6.2,专注于提高稳定性、性能和开发人员的生活质量

来源: 日期:2021-12-24

qt 6 2 released-1.webp.jpg


Qt 6.2是Qt 6的第一个版本,Qt公司将为Qt商业客户提供长期支持。

随着Qt 6.2的发布,几乎所有我们的用户都能够将他们的代码从Qt 5迁移到 Qt 6。我们已经使用自己的工具做到了这一点。也就是说,Qt DesignStudio 2.2和即将发布的Qt Creator 6 beta都是基于Qt 6.2 LTS。 

除了添加缺失的功能外,Qt 6.2还专注于提高稳定性、性能和开发人员的生活质量。 

 新模块

开发Qt 6.2的主要工作之一是重新添加我们在Qt 6.0中遗漏的所有模块和功能。除了极少数例外,Qt 5.15 支持的所有模块现在也支持Qt 6.2。 

  • Qt蓝牙

  • Qt多媒体

  • QtNFC 

  • Qt定位

  • Qt快速对话框

  • Qt远程对象

  • Qt传感器

  • Qt串行总线

  • Qt串口

  • Qt网络频道

  • Qt网络引擎

  • Qt网络套接字

  • Qt网页视图


这些模块的API主要向后兼容Qt 5,并且在移植到Qt 6时只需要对用户代码进行少量调整。

 
 新功能

除了我们从Qt 5带来的许多模块之外,我们在6.2中还有大量的新特性和功能。

Qt快速3D

Qt Quick 3D 获得了一些很酷的新功能,现在支持实例化渲染,允许您使用不同的变换渲染大量相同的对象。我们还添加了一个新的API,用于向场景添加3D粒子效果。 

输入处理已得到改进,我们现在可以为嵌入在3D场景中的2D项目正确创建QtQuick输入事件。我们还添加了一个新的API,用于从场景中的任意点进行基于光线的拾取。

QML工具

Qt 6.2对QML工具进行了较大改进。我们现在有一个公共的CMake API ,它极大地简化了创建您自己的QML模块的过程。 

QML linter(qmlint)是一种工具,用于检查QML源代码的最佳实践、潜在的编码和性能问题,并帮助编写更易于维护的QML。该工具经历了很大的变化,现在可以完全配置,无论是在命令行级别,还是通过配置文件,甚至是QML文件本身中的各个块。此外,它现在可以生成JSON输出以简化与其他工具或自动化系统的集成。

QML格式化程序(qmlformat)现在使用QML dom库,大大改进了生成的输出。

Qt多媒体

Qt多媒体在Qt 6中发生了一些相当大的变化,没有过多考虑向后兼容性的模块。尽管如此,从Qt 5中的Qt多媒体移植到Qt 6应该相对简单。我们相信多媒体是一项必不可少的功能,我们将在Qt 6.2中完全支持该模块。

Qt 6中的Qt多媒体确实支持一些我们在Qt 5中从未设法正确支持的高度要求的功能。示例包括播放的字幕和语言选择支持以及媒体捕获的可配置设置。

内部架构已经过清理,不再像Qt 5那样通过公共API公开。这将使我们能够更快地修复错误,并使将来添加新功能变得更加容易。

整个过程中的小改进

几乎所有其他模块都看到了许多较小的API添加和改进。

我们已经移植了许多API以利用新的属性系统,以便您可以使用 C++ 中的属性绑定。这项工作尚未完成,我们将在未来的版本中继续。

我们还在各个地方修复了许多API缺点和缺失的功能。仅举几个例子:

  • QtCharts获得了一些新的API来提高便利性并使事情更加可定制

  • 我们为QImage添加了浮点图像格式

  • QByteArray::number()现在可以正确处理10以外的基数的负值

  • QLockFile现在具有采用 std::chrono 的重载

  • QtNetwork支持多个可以在运行时共存的SSL后端

QtCreator和Qt DesignStudio

Qt Creator和Qt Design Studio也做了大量工作,以确保它们为Qt 6.2提供一流的支持。Qt Creator 5包含您为Qt 6.2开发所需的一切。

全新版本的Qt Design Studio 2.2基于Qt 6.2,极大地支持在一个图形工具中创建基于Qt Quick和Qt Quick 的3D用户界面。您可以轻松地在目标硬件上测试这些,无论是台式机、移动设备还是嵌入式设备。

新平台

对于Qt 6.2,我们做了很多工作来改进我们对当前支持平台的支持,包括桌面和移动端,例如,通过改进我们对HighDPI渲染的支持和在iOS上添加NFC后端。

undefined


最重要的是,Qt 6.2大大扩展了支持平台的范围:

  • Qt 6.2完全支持Apple Silicon上的macOS。Qt现在可以轻松创建通用二进制文件并在Intel和Apple Silicon上为macOS进行开发。当然,该版本也在我们的CI系统中进行了全面测试。一直可以通过Rosetta层在Apple芯片上运行Qt应用程序,但Qt 6.2现在提供了在Apple芯片上本地运行的完整支持。 

  • Qt 6.2还恢复了对INTEGRITY和QNX实时操作系统的支持。支持需要C++17工具链和最新版本的操作系统。QNX的最低要求是7.1 版,在INTEGRITY上,我们支持19.0.13版。

  • 针对Qt 6.2的webOS验证也已完成,以进一步加强Qt对webOS的承诺。 

  • 有很多工作正在进行以支持Windows 11,我们希望能够在6.2补丁级别版本中为其提供全面支持。Windows on ARM HW也可作为Qt 6.2的技术预览。

  • 最后,我们做了进一步的工作来改进我们对WebAssembly的支持,它在Qt 6.2中作为技术预览提供支持。

从Qt 5移植

在大多数情况下,从Qt 5移植到Qt 6应该很简单。在Qt6移植指南列出了所需要的步骤,并具有更多的信息。移植到Qt 6的典型步骤是:

  • 检查您是否使用了受支持的编译器和平台版本

  • 首先在Qt 6模式下使用Qt 5.15编译(使用  QT_DISABLE_DEPRECATED_BEFORE宏)

  • 然后用Qt 6.x编译—如果需要,在移植阶段利用兼容性模块


有了这些,您可以在Qt 6上运行应用程序,并可以开始使用它提供的所有新特性和功能。例如,如果您的应用程序使用QML,请运行qmlint工具并修复它给出的警告。 


更多详情,请联系我们,我们将竭诚为您服务!