Qt 6.3 版本更新内容概览_

Qt 6.3 现已发布将近两个月了,同之前的版本相比较,这一版本与往常一样,包含许多新功能以及大量错误修复。接下来,我们就来一起看看此次更新的内容吧!

质量

对于开发框架来说,不会有完美的存在,更别说是像Qt这种,所以我们一直尽力的将它的错误率控制在一定的范围内,并努力的修复 bugtracker 所提供的的报告错误,并通过自动化测试以提高Qt的覆盖率。

据统计,自 Qt 6.2版本发布到现在,我们共修复了用户报告中的 1750 个错误。这些错误的解决,也间接的为Qt 6.3 版本升级提供了一定的基础,从而显著的提高了 Qt 6.3 的质量。

当然,未来的我们也将把更高的关注度放在质量上面,并为即将发布的补丁级别版本提供进一步的错误修复,其中也包括 Qt 6.3 系列和一些我们正在开发的其他版本。

新功能

在修复和提高Qt开发框架质量之外,我们还在逐渐的研发新功能,再次版本更新的期间,我们总共完成了 250 个用户故事和实现新功能的任务。接下来,就让我们一起去看看那些比较重要的方面吧!

Qt 快速编译器

Qt 6.3 版本中我们引进了增加了新的一项功能——快速编译器。相信大家肯定都很熟悉这个名词,不错,这款功能是我们一直在研发的,并且也是我们很长一段时间都在做的事情。在Qt 6 的 QML 方面所做的许多更改都为新编译器奠定了量好了基础。

新的 QML 编译器由两个工具组成:一是QML 类型编译器 ( qmltc ) ;

另一个是 QML 脚本编译器 ( qmlsc )。

 

第一种是将 QML 类型编译为 C++,增加了 QML 类型的实例化;另外一种则是在开发环节中某些比较重要的地方将函数和绑定编译到 C++,从而在 QML 中评估函数和绑定时显着提高性能。

 

两者之间存在着相似性,但却又有着实际的区别。

 

qmltc 和 qmlsc 都是“Qt 快速编译器”的一部分。“Qt Quick Compiler”是洞包的名称。qmltc 和 qmlsc 分开编译器组件做不同的事情:编译类型和脚本部分。他们将共同努力,以实现更多的性能优势。

 

 

 

 

Qt 6.3 版本更新内容概览_

在QML 类型编译器中,它尽可能的将 QML 中的函数绑定编译成 C++ 代码。但是,由于 QML 是一种动态类型的语言,如果我们不能在编译时确定所有类型,这将是做了一个无用功,没有任何意义。如果发生了这种情况,你会发现,编译器退回到了原来将方法编译成类似于旧的 qmlcachegen 的字节码中。

 

qmlcachegen 和 qmlsc 不一样。qmlsc 提供直接模式和静态模式。直接模式允许代码直接从 QML 类型底层的 C++ 类调用方法,而不使用查找或元对象。这要求 C++ 类对编译的代码是可见的。静态模式会忽略阴影,因此会导致编译更多的绑定和表达式。

使用这些编译器,我们可以对编译为本机代码的绑定和函数实现显着的性能进行改进,如下图所示。

 

Qt 6.3 版本更新内容概览_

如图所示,绑定评估性能显着提高,尤其是在上面的示例中,绑定的评估速度比没有编译器的情况快 20% 到 35%。

Qt Quick 和 Qt Quick 控件

在 Qt 6.3 中,我们还添加了几个新的 Qt 快速控件。其中两个在之前的软件市场上作为独立组件提供。我们选择将它们集成到我们的一组标准控件中,以使所有用户都可以使用它们。

TreeView和Calendar 都是通常需要的功能,并且也会使使用 Qt Quick 构建桌面应用程序更具吸引力。

 

Qt 6.3 版本更新内容概览_

Qt 6.3 版本更新内容概览_

 

此外,我们添加了两个新对话框,FolderDialog 和MessageDialog。这两个对话框将使用可用的系统对话框(在桌面和移动平台上)。在其他平台上,Qt 为这些对话框提供了依赖于平台的主题。

最后,我们做了一些重要的工作来提高 Qt Quick 中文本组件(Text、TextEdit、TextArea、TextInput)的性能。以前,将非常大的文档传递给文本控件可能会占用大量内存并导致绘图性能下降。这已在 Qt 6.3 中修复,但确保后端只呈现当前在屏幕上可见的部分文本。

Qt Quick 3D

Qt Quick 3D 也更新了一些功能,其中就有反射这一模块;

 

Qt 6.3 版本更新内容概览_

反射是使用ReflectionProbe  QML 元素实现的。探针定位在场景中,它捕捉周围环境并将其保存在立方体贴图中。然后其他元素可以使用该地图来显示反射。

新的 ResourceLoader 元素使您可以更好地控制 Qt Quick 3D 中的资源管理,并允许您预加载大型资源,例如网格或纹理,并有助于避免它们当前在场景中不可见时被卸载。

Qt PDF

在 Qt PDF 中,Qt 6.3 添加了另一个自从我们迁移到 Qt 6 以来一直缺少的模块。它在 6.3 中作为技术预览版提供。它涵盖了与 5.15 中的 Qt PDF 相同的功能,并且我们为 6.4 的模块计划了一些新功能。

 

Qt 6.3 版本更新内容概览_

其他改进

我们在 Qt Core 中进行了大量较小的改进。其中很大一部分为我们的字符串类增加了便利。其他功能包括支持 QLocale 中的 ISO639-2 语言标签、在 QDate、QTime 和 QLocale 中将时间转换为字符串时的 AM/PM 说明符,更容易在 JSON 和 CBOR 之间转换,QtFuture::whenAll() 和 whenAny() 方法以及许多其他较小的改进。

现在可以查询 Qt 网络以获取正在使用的传输介质以及是否对传输进行计量。

Qt Positioning 现在允许您在 Android 和 iOS 上查询获得的位置的准确性。Qt 蓝牙现在将 BTLE 服务数据作为设备信息的一部分公开,并且现在可以在 Windows 上正确报告适配器状态。

我们还对 Qt Widgets 进行了许多改进,重点是高分辨率显示、样式、样式表和项目视图的样式。

在构建系统方面,我们在 Qt 6.3 中对 CMake 的支持有了很多改进。最值得注意的是新函数 qt-generate-deploy-APP-script(),它极大地简化了为不同平台上的应用程序生成部署脚本。其他改进包括处理 QML 类型和脚本编译器、支持Android 上的多 ABI 构建以及在 iOS 上生成默认启动屏幕。

外  表

Qt 6.3 是朝着下一个版本 Qt 6.4 和我们的 Qt 6 系列的下一个 LTS 版本 Qt 6.5 迈出的一大步。我们对这些版本有一些很棒的计划,其中包括对 WebAssembly 的全面支持、QHttpServer、gRPC 支持、基于 FFmpeg 的 Qt Multimedia 跨平台后端、Qt Speech、Qt Location 以及 Windows 11 上更好的原生 Look&Feel 和iOS 支持。

以上就是这次 Qt 6.3 版本更新的内容,相信在未来的不久,Qt 会变得更加的完善,功能变得更加的强大。好了,今天我们就先聊到这里吧,如果你还有什么想要知道或者是想要了解的,就请持续的关注我们吧!更多资讯,尽在八方! 

来源:北京八方在线科技有限公司

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月2日
下一篇 2022年7月2日

相关推荐

发表回复

登录后才能评论