Qt 6.3发布

Qt 6.3 released

Qt 6.3发布

Tuesday April 12, 2022 by Lars Knoll | Comments

​2022年4月12日星期二 拉尔斯·诺尔 | 评论

I’m happy to announce that Qt 6.3 has been released today. As always, the release is packed with many new features as well as a large amount of bug fixes. 

我很高兴地宣布Qt 6.3今天已经发布。一如往常,该版本包含了许多新功能以及大量错误修复。

Quality 

质量

Let’s start with bug fixes. The quality of Qt and our releases is something we consider extremely important. While a large framework as Qt can never be free of bugs, we are constantly aiming at keeping that number as low as possible. We are putting a lot of effort into fixing bugs reported through our bugtracker, and improving the coverage of Qt with automated tests.

​让我们从错误修复开始。Qt和我们的版本的质量是我们认为非常重要的。虽然像Qt这样的大型框架永远都不可能没有bug,但我们一直致力于将这个数字保持在尽可能低的水平。我们正在努力修复通过bugtracker报告的bug,并通过自动化测试提高Qt的覆盖率。

Since the release of Qt 6.2, we fixed a total of 1750 bugs that have been reported by our users. All those bug fixes are part of the Qt 6.3.0 release, leading to a significantly improved quality for Qt 6.3.

自Qt 6.2发布以来,我们修复了用户报告的总共1750个错误。所有这些错误修复都是Qt 6.3.0版本的一部分,从而大大提高了Qt 6.3的质量。

We will of course continue to have a strong focus on quality and provide further bug fixes to upcoming patch level releases, both within the Qt 6.3 series as well as our 6.2 LTS releases.

当然,我们将继续关注质量,并为即将发布的补丁级版本提供进一步的错误修复,包括Qt 6.3系列和我们的6.2 LTS版本。

New features

新特性

But we haven’t just worked on bug fixes and quality. Qt 6.3 also comes with a decent set of new functionality. A total of 250 user stories and tasks implementing new functionality have been completed for 6.3. Those are of course too many to list individually, and if you want to have all the details, have a look at our new features page and our Release Notes.

​但我们不仅致力于修复缺陷和提高质量。Qt 6.3还提供了一套不错的新功能。在6.3版本中,总共完成了250个用户故事和实现新功能的任务。这些当然太多了,无法单独列出,如果您想了解所有细节,请查看我们的新功能页和发行说明。

Let’s have a look at some of the highlights.

让我们来看看一些亮点。

Qt Quick Compilers

Qt Quick编译器

The new Qt Quick Compilers are one of the big new features we’re introducing with Qt 6.3. This is something we’ve been working on for quite a while now. Many of the changes we did on the QML side for Qt 6 were laying the foundations for the new compilers, and I’m very happy, that we can now make the compilers available to you as a Technology Preview.

新的Qt Quick编译器是我们在Qt 6.3中引入的一个重要新特性。这是我们已经做了很长一段时间的事情。我们在Qt 6的QML端所做的许多更改都为新的编译器奠定了基础,我很高兴,我们现在可以将编译器作为技术预览提供给您。

The new QML compilers consist of two tools, the QML Type compiler (qmltc) and the QML Script Compiler (qmlsc). The first one compiles QML types to C++, significantly speeding up instantiation of QML types. The second one compiles functions and bindings to C++ where it makes sense, giving significant performance improvements when evaluating functions and bindings in QML.

新的QML编译器由两个工具组成,QML类型编译器(qmltc)和QML脚本编译器(qmlsc)。第一个编译QML类型到C++,大大加快QML类型的实例化。第二个编译功能和绑定到C++,在这里有意义,当评估QML中的函数和绑定时,会给出显著的性能改进。

 It aims to compile functions and bindings in QML into C++ code whenever possible. As QML is a dynamically typed language, this doesn’t make sense if we can’t determine all types at compile time. In that case, the compiler falls back to compiling the methods into byte code similar to the old qmlcachegen.

它的目的是在QML编译函数和绑定到C++代码中。由于QML是一种动态类型化语言,如果我们不能在编译时确定所有类型,这就没有意义。在这种情况下,编译器会退回到将方法编译成字节码的方式,类似于旧的qmlcachegen。

Using these compilers, we can achieve significant performance improvements for bindings and functions that can be compiled into native code, as shown in the graphs below.

使用这些编译器,我们可以显著提高可编译为本机代码的绑定和函数的性能,如下图所示。

Binding evaluation performance increases substantially, in the examples above bindings can be evaluated between 20 and 35% faster than without the compiler.

绑定评估性能显著提高,在上述示例中,绑定的评估速度比不使用编译器的情况下快20%到35%。

For those of you who are interested in all the details, we have published a series of blog posts about the technology. Have a look here for the generic introduction, here for an in-depth view, and finally here for more detailed benchmark results.

​对于那些对所有细节感兴趣的人,我们发布了一系列关于这项技术的博客文章。请看这里的一般介绍,这里的深入介绍,最后这里的更详细的基准测试结果。

Qt Quick and Qt Quick Controls

Qt Quick和Qt Quick Controls

In Qt 6.3, we also added a couple of new Qt Quick Controls. Two of them have been available as standalone components in the marketplace previously. We chose to integrate them into our set of standard Controls to make them available to all our users. TreeView and Calendar are both commonly requested functionality and will also make it more attractive to build desktop applications using Qt Quick.

​在Qt 6.3中,我们还添加了两个新的Qt Quick Controls。其中两个之前已在市场上作为独立组件提供。我们选择将它们集成到我们的一组标准控件中,以便所有用户都能使用它们。TreeView和Calendar都是常用的功能,使用Qt Quick构建桌面应用程序也会更具吸引力。

 

In addition, we added two new dialogs, FolderDialog and MessageDialog. Those two dialogs will use the system dialogs where available (on desktop and mobile platforms). On other platforms Qt provides those dialogs with a platform dependent theming.

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

Finally, we have done some significant work to improve the performance of our text components (Text, TextEdit, TextArea, TextInput) in Qt Quick. Previously, passing a very large document to the text controls could use up a rather large amount of memory and lead to slow drawing performance. This has been fixed in Qt 6.3, but ensuring the backend only ever renders the part of the text that is currently visible on the screen.

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

Qt Quick 3D

Also Qt Quick 3D has seen a couple of new features. Most notable are probably the new support for reflections.

此外,Qt Quick 3D还提供了一些新功能。最值得注意的可能是对反射的新支持。

Reflections are implemented using the ReflectionProbe QML element. The probe is positioned in the scene, where it captures the surrounding environment and saves it in a cube map. That map can then be used by other elements to show reflections. Have a look at the blog post about the feature for more details.

​反射使用ReflectionProbe QML元素实现。探测器定位在场景中,捕捉周围环境并将其保存在立方体地图中。然后,其他元素可以使用该贴图来显示反射。查看有关该功能的博客帖子,了解更多详细信息。

The particle system has also gained a couple of new features, find out more in the separate blog post here.

​粒子系统还获得了一些新功能,请在这里的单独博客文章中了解更多。

The new ResourceLoader element gives you more control over resource management in Qt Quick 3D and allowing you to pre-load large resources such as meshes or textures and helps avoiding that they get unloaded if they are currently not visible in the scene.

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

Qt PDF

With Qt PDF, Qt 6.3 adds another module that has been missing since we moved to Qt 6. It is available as a Technology Preview in 6.3. It covers the same functionality as Qt PDF in 5.15, and we have some new functionality planned for the module for 6.4.

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

Other improvements

其他改进

We’ve made a huge number of smaller improvements in Qt Core. A large part of those are adding convenience to our string classes. Additional features are support for ISO639-2 language tags in QLocale, AM/PM specifiers when converting times to strings in QDate, QTime and QLocale, easier conversion between JSON and CBOR, QtFuture::whenAll() and whenAny() methods and many other smaller improvements.

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

Qt Network can now be queried for the transport medium that is being used and whether the transport is metered.

Qt Network现在可以查询正在使用的传输介质,以及是否对传输进行了计量。

Qt Positioning now allows you to query the accuracy of the obtained position on Android and iOS. Qt Bluetooth now exposes BTLE service data as part of the device information and now correctly reports the adapter state on Windows.

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

We’ve also worked on many improvements for Qt Widgets, with a focus on high resolution displays, styles, styling with stylesheets and itemviews.

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

On the build system side, there are quite a few improvements to our CMake support in Qt 6.3. The most notable one is the new  function qt-generate-deploy-app-script(), that greatly simplifies the generation of a deployment script for the application on different platforms. Other improvements are additions to handle the QML type and script compilers, support for multi-ABI builds on Android and generation of a default launch screen on iOS.

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

Outlook

前景

Qt 6.3 is a great step towards the next releases, Qt 6.4 and our next LTS release for the Qt 6 series, Qt 6.5. We have some great plans for those releases, that include amongst other things full support for WebAssembly, a QHttpServer, gRPC support, an FFmpeg based cross-platform backend for Qt Multimedia, Qt Speech, Qt Location, and better native Look&Feel on Windows 11 and iOS support. For more detail you can also have a look at our blogpost about the  Qt 2022 roadmap

​Qt 6.3是迈向下一个版本Qt 6.4和Qt 6系列的下一个LTS版本Qt 6.5的重要一步。我们为这些版本制定了一些很棒的计划,其中包括全面支持WebAssembly、QHttpServer、gRPC支持、基于FFmpeg的跨平台后端,用于Qt多媒体、Qt语音、Qt位置,以及在Windows 11和iOS上更好的本机外观和感觉支持。有关更多详细信息,您还可以查看我们关于Qt 2022路线图的博客帖子。 

Thanks 

感谢

Finally, I’d like to thank everybody that has helped make Qt 6.3 happen. You can find a full list of all contributors at the end of the release notes, but there are also many others that have helped by reporting bugs or keeping our servers and infrastructure running.

​最后,我要感谢所有帮助Qt 6.3实现的人。您可以在发行说明的末尾找到所有贡献者的完整列表,但也有许多其他贡献者通过报告错误或保持我们的服务器和基础设施运行提供了帮助。

As always, the new release will be available in the Qt installer. You can also get the release from our download page or your Qt Account page.

​一如既往,新版本将在Qt安装程序中提供。您也可以从我们的下载页面或您的Qt帐户页面获得该版本。

Enjoy!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值