Qt 6.5 LTS released!

Qt 6.5 LTS发布!

April 03, 2023 by Volker Hilsheimer | Comments

​2023年4月3日:Volker Hilsheimer |评论

Today we have released Qt 6.5! In the 6th release of the Qt 6 series, we introduce lots of new functionality for graphics and UI developers and the application backend. In addition, Qt 6.5 brings many fixes and general improvements and will be a long-term supported release for commercial license holders.

今天我们发布了Qt 6.5!在Qt 6系列的第6版中,我们为图形和UI开发人员以及应用程序后端引入了许多新功能。此外,Qt 6.5带来了许多修复和一般改进,将是商业许可证持有者长期支持的版本。

Let's start with some highlights that Qt 6 applications get practically for free.

让我们从Qt 6应用程序实际上免费获得的一些亮点开始。

Improved theming and styling

改进了主题和风格

With Qt 6.5, applications can easily support dark mode on Windows. On Windows, supporting a dark theme is an explicit choice that an application developer has to make. Implicitly switching an application to dark mode if that application expects window backgrounds to be light could break a lot of user interfaces. But as long as the application uses a style that doesn't override the palette explicitly, such as the Fusion style, Qt will respect the user's choice of color scheme and use the dark system palette. Qt will also configure the title bar and window frame to be in sync with the overall appearance.

​使用Qt 6.5,应用程序可以轻松支持Windows上的暗模式。在Windows上,支持深色主题是应用程序开发人员必须做出的明确选择。如果应用程序期望窗口背景为浅色,则将该应用程序隐式切换到深色模式可能会破坏许多用户界面。但是,只要应用程序使用的样式不会明确覆盖调色板,例如Fusion样式,Qt就会尊重用户对配色方案的选择,并使用深色系统调色板。Qt还将配置标题栏和窗口框架,使其与整体外观同步。

In addition, applications can react to changes in the system theme by handling the QStyleHints::colorScheme property change notification.

​此外,应用程序可以通过处理QStyleHints::colorScheme属性更改通知来对系统主题中的更改做出反应。

In Qt Quick Controls, we completed the iOS style, implementing also many controls that don't have an equivalent on native iOS. For applications targeting Android, we have updated the Material style to the Material 3 design system. Applications using the Material style will automatically get a refreshed look. We added a few APIs to allow UI developers to modify certain visual aspects, such as the containerStyle for TextField or TextArea, or the roundedScale for buttons, popups, and drawers.

​在Qt Quick Controls中,我们完成了iOS风格,还实现了许多在原生iOS上没有等效控件的控件。对于针对Android的应用程序,我们已将Material样式更新为Material 3设计系统。使用“材质”样式的应用程序将自动获得刷新的外观。我们添加了一些API,允许UI开发人员修改某些视觉方面,例如TextField或TextArea的containerStyle,或按钮、弹出窗口和抽屉的roundedScale。

And on macOS, applications using QMessageBox or QErrorMessage will show the native dialogs with a modern, centred UI design.

在macOS上,使用QMessageBox或QErrorMessage的应用程序将显示具有现代、集中的UI设计的本地对话框。

Platform improvements, from devices to web

从设备到网络的平台改进

With Qt 6.5, we are adding support for Android 12 while making sure that Qt keeps working as expected on older versions. Even with the significant changes on the platform, a single build of your Qt application can now be deployed to devices running any Android version from 8 to 12 without any changes.

​通过Qt 6.5,我们增加了对Android 12的支持,同时确保Qt在旧版本上保持预期工作。即使平台发生了重大变化,Qt应用程序的单个构建现在也可以部署到运行从8到12的任何Android版本的设备上,而无需任何更改。

We have upgraded our Boot2Qt software stack for device builders to use the Yocto 4.1 (Langdale) release, which gives access to application development for embedded hardware across many industries. On the Linux Desktop, commercial Qt 6 Debian 11 packages are available via apt, which makes deploying makes it convenient to deploy commerical Qt applications to debian-based Linux distributions.

​我们已经升级了Boot2Qt软件堆栈,供设备制造商使用Yocto 4.1(Langdale)版本,该版本允许许多行业的嵌入式硬件应用程序开发。在Linux桌面上,商业Qt 6 Debian 11软件包可通过apt获得,这使得部署商业Qt应用程序到基于Debian的Linux发行版变得方便。

Qt 6.5 for WebAssembly follows up on the initial supported release in Qt 6.4 and adds support for video rendering and accessibility for widgets. Qt WebEngine has been updated to Chromium 108, and even includes Chromium 110 security patches. Now it supports hardware accelerated video rendering on Linux under Vulkan for both X11 and Wayland.

适用于WebAssembly的Qt 6.5是Qt 6.4中最初支持的版本的后续版本,并增加了对widgets视频渲染和可访问性的支持。Qt WebEngine已更新到Chromium 108,甚至包括Chromium 110安全补丁。现在,在Linux上的Vulkan下支持X11和Wayland的硬件加速视频渲染。

Beautiful and performant effects for 2D and 3D

2D和3D的美观和性能效果

The new Qt Quick Effects module gives Qt Quick UI developers access to ready made graphical effects, which can be combined into a single effect without paying a performance penalty. The interactive Qt Quick Effect Maker tool makes it easy to build and combine complex custom effects. The combination of those technologies replaces the Qt Graphical Effects module from Qt 5 with a solution that performs better, is easier to use, and more flexible to extend.

​新的Qt Quick Effects模块使Qt Quick UI开发人员可以访问现成的图形效果,这些效果可以组合成一个效果,而无需支付性能损失。交互式Qt Quick Effect Maker工具可以轻松构建和组合复杂的自定义效果。这些技术的结合取代了Qt 5中的Qt图形效果模块,提供了一种性能更好、更易于使用、扩展更灵活的解决方案。

https://youtu.be/4gdbaIIZU9g

Qt Quick 3D learned how to automatically and explicitly adjust the level of detail for models, so simplified meshes can be generated and used for objects far away from the camera. With SceneEnvironment's new support for fog, distant objects can also be made to fade out. For more complex post-processing effects, the ExtendedSceneEnvironment allows combining effects, such as depth of field, glow, or lens flare, into a single, high-performant post-processing effect that only requires a single render pass.

​Qt Quick 3D学习了如何自动明确地调整模型的细节级别,从而可以生成简化的网格,并将其用于远离相机的对象。通过SceneEnvironment对雾的新支持,还可以使远处的对象淡出。对于更复杂的后处理效果,ExtendedScenneEnvironment允许将景深、光晕或镜头光斑等效果组合为一个高性能的后处理特效,该特效只需要一个渲染过程。

Qt everywhere - connectivity everywhere

无处不在的Qt-无处不在的连接

Communication with web services and data exchange between devices has always been possible with Qt's low-level classes in Qt Network and the higher-level serialization support for JSON and CBOR.

​通过Qt网络中Qt的低级类以及对JSON和CBOR的高级序列化支持,与web服务的通信和设备之间的数据交换始终是可能的。

With the new Qt GRPC Qt module, we now add a framework for integration of gRPC and Protocol Buffer technologies in Qt. Qt GRPC allows communication with gRPC services, and with Qt Protobuf, it provides the infrastructure for serializing Qt-based classes. With those modules, developers can define data and messages in protobuf specifications (.proto) files. Qt integrates the standard tools into the build system to generate C++ types through which applications can communicate with service endpoints.

​有了新的Qt GRPC Qt模块,我们现在添加了一个框架,用于在Qt中集成GRPC和协议缓冲区技术。Qt GRPPC允许与GRPC服务通信,并且通过Qt Protobuf,它提供了序列化基于Qt的类的基础设施。使用这些模块,开发人员可以在protobuf规范(.proto)文件中定义数据和消息。Qt将标准工具集成到构建系统中,以生成C++类型,应用程序可以通过这些类型与服务点进行通信。

In Qt Network, we have introduced the capability to configure HTTP 1 connections, and we added a number of CAN bus support classes to the Qt Serial Bus module, providing support for encoding and decoding CAN bus messages, processing frames, and parsing DBC files.

​在Qt网络中,我们引入了配置HTTP 1连接的功能,并在Qt串行总线模块中添加了许多CAN总线支持类,为编码和解码CAN总线消息、处理帧和解析DBC文件提供了支持。

The gRPC, protobuf, and CAN bus additions are all under Technology Preview in Qt 6.5, and we are looking forward to your feedback!

gRPC、protobuf和CAN总线的添加都在Qt 6.5的技术预览中,我们期待您的反馈!

Qt Location back as Technology Preview

Qt Location 作为技术预览回归

The Qt Location module is back in Qt 6.5 as a technology preview. As described a few months ago in a separate blog post, the Qt 6 version of Qt Location takes fewer detours. Rendering of items is now implemented via Qt Quick Shapes, and thanks to the improved QML type system in Qt 6 we have been able to remove a lot of wrapper classes. In this initial release of Qt Location for Qt 6, we only support the Open Street Maps backend. We have removed some of the functionality available through common APIs, but only implemented for a single backend. Refer to the porting guide for a list of API changes.

​Qt Location模块作为技术预览版回归出现在Qt 6.5中。正如几个月前在另一篇博客文章中所描述的那样,Qt 6版本的Qt Location少走弯路。项目的渲染现在通过Qt Quick Shapes实现,由于Qt 6中改进的QML类型系统,我们已经能够删除许多包装类。在Qt 6的Qt Location的首次发布中,我们只支持Open Street Maps后端。我们已经删除了一些通过通用API可用的功能,但仅针对单个后端实现。有关API更改的列表,请参阅移植指南。

We have split the Qt Quick Map component into two types: the Map type is responsible for displaying a map but doesn't provide any interactivity. The new MapView type replaces the MapGestureArea and implements typical interaction features such as pinch-zooming and panning through Qt Quick input handlers.

​我们将Qt Quick Map组件分为两种类型:Map类型负责显示地图,但不提供任何交互。新的MapView类型取代了MapGestureArea,并实现了典型的交互功能,如通过Qt Quick输入处理程序进行缩放和平移。

While the module itself is under technology preview, the GeoJSON support is on par with the rest of the module and no longer experimental.

虽然模块本身正在进行技术预览,但GeoJSON支持与模块的其他部分不相上下,不再是实验性的。

New functionality in existing modules

现有模块中的新功能

Qt 6.5 adds plenty of new features on top of Qt 6.4 and the previous Qt 6 releases, and this blog post focuses on those improvements. Before diving into the details for each module, perhaps this is a good time to point those of you who are still on Qt 5.15 today at the overall feature comparison page.

​Qt 6.5在Qt 6.4和之前的Qt 6版本的基础上增加了许多新功能,本文重点介绍了这些改进。在深入了解每个模块的细节之前,也许这是一个很好的时机,让今天仍在Qt 5.15上的人看看整体功能比较页面。

Qt Core

Many platforms require explicit permission from the user before an application can access certain services. With Qt's new permission APIs, applications can now check and request permission for features that require such consent. In this first release, we include types to ask for permission to access the location, Bluetooth, camera, and microphone capabilities of the device, as well as access to the user's calendar and contacts data.

​许多平台需要用户的明确许可,应用程序才能访问某些服务。有了Qt新的权限API,应用程序现在可以检查并请求需要此类同意的功能的权限。在第一个版本中,包括请求访问设备的位置、蓝牙、摄像头和麦克风功能的权限,以及访问用户的日历和联系人数据的类型。

Qt GUI

Applications that need to exchange platform-specific data formats via the native clipboard can now implement QWindowsMimeConverter and QUtiMimeConverter to support Windows or macOS-specific formats. If you have implementations of QWindowsMime or QMacMime in Qt 5, then those will almost directly translate to the new APIs but require less boiler-plate code to register the converters with Qt.

​需要通过本地剪贴板交换平台特定数据格式的应用程序现在可以实现QWindowsMimeConverter和QUtiMimeConverter,以支持Windows或macOS特定格式。如果您在Qt 5中实现了QWindowsMime或QMacMime,那么这些将几乎直接转换为新的API,但需要更少的锅炉板代码来向Qt注册转换器。

The new setBadgeNumber API in QGuiApplication makes it easy for applications to inform the user about the number of actionable items, like unread messages, in the dock or taskbar.

​QGuiApplication中新的setBadgeNumber API使应用程序可以轻松地通知用户dock或任务栏中可操作项目的数量,如未读消息。

And we updated our Vulkan support to use modern underlying infrastructure, added markdown and HTML support for checkable list items, and provided access to the string indexes for a run of glyphs in QTextLayout.

​我们更新了对Vulkan的支持,以使用现代底层基础设施,增加了对可检查列表项的标记和HTML支持,并提供了对QTextLayout中字形运行的字符串索引的访问。

Qt Multimedia

Qt多媒体

The FFmpeg media backend is now the default for macOS, Windows, Android, and desktop Linux - on embedded systems, GStreamer continues to be the default, but FFmpeg can be enabled explicitly. This backend makes the same functionality available consistently on almost all platforms. The Qt Spatial Audio module is now fully supported after its introduction as a technology preview with Qt 6.4.

​FFmpeg媒体后端现在是macOS、Windows、Android和桌面Linux的默认设置——在嵌入式系统上,GStreamer仍然是默认设置,但可以显式启用FFmpeg。这个后端使得几乎所有平台上都可以一致地使用相同的功能。Qt Spatial Audio模块作为Qt 6.4的技术预览版推出后,现在得到了全面支持。

As long as the FFmpeg backend is used, Qt applications can now capture the screen using the new QScreenCapture class, which is a new type of video input. The video from a screen recording can be directed through QMediaCaptureSession for further processing, such as a QMediaRecorder or QVideoWidget.

​只要使用FFmpeg后端,Qt应用程序现在就可以使用新的QScreenCapture类来捕捉屏幕,这是一种新型的视频输入。来自屏幕录制的视频可以通过QMediaCaptureSession进行进一步处理,例如QMediaRecorder或QVideoWidget。

Qt QML and Qt Quick Compiler

Qt QML和Qt Quick编译器

One tool of the Qt Quick Compiler, the QML type compiler, qmltc, supports more QML constructs now, most notably translation bindings, inline components, singletons, and signal handlers. The QML script compiler implemented in the tools qmlcachegen and in qmlsc, can now handle more JavaScript constructs, such as output via consolelet and const, or string building via arg. These improvements are available in both editions of the Qt Quick Compiler, the dual-licensed version that is included in Qt 6.5, and in the commercial-only Qt Quick Compiler Extensions add-on. All of this results in the generation of more and better C++ code from QML and JavaScript.

​Qt Quick编译器的一个工具,QML类型的编译器qmltc,现在支持更多的QML构造,最著名的是翻译绑定、内联组件、单件和信号处理程序。在工具qmlcachegen和qmlsc中实现的QML脚本编译器现在可以处理更多的JavaScript构造,例如通过控制台、let和const输出,或者通过arg构建字符串。Qt 6.5中包含的双许可版本Qt Quick Compiler和仅限商业版的Qt Quick编译器扩展插件都提供了这些改进。所有这些都导致了从QML和JavaScript生成更多更好的C++代码。

The QML module improvements in Qt 6.5 make it much simpler to create QML elements via their module URI and type name. The support for sequence types has been standardized and extended, with support for methods like map()reduce(), or forEach(). Value types that have a suitable constructor or are registered as structured types can be instantiated directly from QML. This removes the need for constructor helper functions in singleton C++ types.

​Qt 6.5中QML模块的改进使通过模块URI和类型名称创建QML元素变得更加简单。对序列类型的支持已经标准化和扩展,支持map()、reduce()或forEach()等方法。具有合适构造函数或注册为结构化类型的值类型可以直接从QML实例化。这就消除了在单例C++类型中对构造函数辅助函数的需要。

Qt Quick and Quick Controls

Qt Quick和Quick Controls

TableView got support for interactive features such as in-place editing of cells, resizing rows and columns, and multi-selection. TreeView's delegate also supports in-place editing, and the Qt Quick input handlers got a few new properties.

TableView支持交互式功能,如单元格的就地编辑、调整行和列的大小以及多选。TreeView的委托还支持就地编辑,QtQuick输入处理程序有一些新的属性。

Qt Widgets

QOpenGLWidget now supports stereoscopic rendering as long as the underlying system supports it.

QOpenGLWidget现在支持立体渲染,只要底层系统支持。

And we have made a few smaller additions to QKeySequenceEdit, which can now be configured to limit the length of a key sequence and to allow the end-user to finish recording a sequence with one or more key combinations.

​我们对QKeySequenceEdit进行了一些较小的添加,现在可以对其进行配置,以限制密钥序列的长度,并允许最终用户使用一个或多个密钥组合完成序列的录制。

Other improvements across Qt

整个Qt的其他改进

In addition to the above, we simplified the QDateTime and QDate APIs by folding the time specification into the QTimeZone; we made it easier to use QBindable for properties with a notify signal, and give applications more control when working with animations using a BoundaryRule. Positioning-aware applications can use the new SatelliteSource type directly from QML.

​除上述内容外,我们还通过将时间规范折叠到QTimeZone中,简化了QDateTime和QDateAPI;我们让属性使用QBindable和通知信号变得更容易,并在使用BoundaryRule处理动画时为应用程序提供更多控制。定位感知应用程序可以直接从QML使用新的SatelliteSource类型。

Stability

稳定性

Qt 6.5 is the second LTS release of Qt 6, and we have added a lot of new functionality in the last 18 months since the Qt 6.2 LTS release. While doing that, we have also fixed a lot of bugs: according to our JIRA bug tracker, we have fixed close to 3500 tickets in that timeframe! And we have also used the time and your feedback to improve the stability of new features. In Qt 6.5, the Qt Quick 3D Physics module we introduced as a technology preview with Qt 6.4 has matured and is now fully supported.

​Qt 6.5是Qt 6的第二个LTS版本,自Qt 6.2 LTS发布以来,我们在过去的18个月里添加了许多新功能。在这样做的同时,还修复了很多漏洞:根据我们的JIRA漏洞跟踪器,我们在这段时间内修复了近3500个bug!还利用时间和反馈来提高新功能的稳定性。在Qt 6.5中,我们在Qt 6.4中作为技术预览引入的Qt Quick 3D Physics模块已经成熟,现在已得到全面支持。

Big thanks to all contributors

非常感谢所有贡献者

I’d like to thank everybody who has helped make Qt 6.5 a reality. You can find a full list of all 286 contributors to the Qt source code at the end of the release notes. And I'd also like to thank all of you who have helped make Qt better by reporting bugs, sending us your feedback, or telling us about your use cases. And last but not least, I'd like to thank all of you who keep our CI and code review systems running.

​感谢所有帮助实现Qt 6.5的人。可以在发行说明的末尾找到Qt源代码所有286个贡献者的完整列表。我还要感谢所有通过报告错误、向我们发送反馈或告诉我们您的用例来帮助Qt变得更好的人。最后但同样重要的是,我要感谢所有让我们的CI和代码审查系统保持运行的人。

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帐户页面获得发布。

Qt 6.5 LTS发布!相关推荐

  1. qt5.12 linux版本,Qt 5.12 LTS发布下载,附新功能及更新内容

    Qt 5.12 已经发布下载,这是一个 LTS 长期支持版本,使用 Qt 5.12 的用户将获得三年的技术支持.下面将为你介绍 Qt 5.12 的新功能及更新内容,同时,对比上一个 LTS 版本 5. ...

  2. qt5 linux 窗口不能置顶_Qt 5.15 LTS发布,Qt 6要来了

    Qt 5.15 LTS 已经发布了,这是 Qt 5 系列的最后一个功能版本,为下一个主要版本 Qt 6 做了大量准备工作.此版本将为所有商业许可证持有者提供三年的长期支持,在三年的支持期后,可以选择提 ...

  3. Qt 5.12 LTS(长期维护版本)中Qt Quick的性能改进

    我们一直致力于提高Qt的性能和优化其内存消耗.Qt 5.12的一个重点关注是在于减少QML引擎的内存消耗和优化JavaScript性能. 与上一个长期支持版Qt 5.6 LTS相比,Qt 5.9 LT ...

  4. Qt Creator 4.9 发布

    Qt Creator 4.8中引入了语言服务器协议支持,允许Qt Creator通过利用此标准轻松支持更多编程语言,使IDE和其他编程工具可以轻松地获得通用编程语言支持的交换格式.使用Qt Creat ...

  5. Qt 5.15 LTS版本 安装教程 在线安装

    转载自:http://www.qtcn.org/bbs/read-htm-tid-88668.html Qt 5.15 是 Qt5 最后的LTS,同时 Qt 5.9 LTS 也将于5月31日终止. Q ...

  6. Qt 6.2 LTS 与 Qt 5.15 LTS 的功能对比

    本文翻译自Qt 6.2 vs. Qt 5.15 – The Feature Parity Comparison 原文作者:Peter Schneider,Qt公司高级产品经理 校审:Nick Wu 近 ...

  7. 【Qt】Qt 5.15 LTS长期支持版本

    00. 目录 文章目录 00. 目录 01. Qt5.15前言 02. 3D图形抽象API 03. Qt Quick 3D 04. Qt Design Studio 1.5 05. Qt QML 06 ...

  8. Qt 6.5 LTS 正式发布

    Qt 6.5 LTS 于2023年4月3日发布 如果你需要用国内源安装Qt6.5请看这里https://yanchenyu.blog.csdn.net/article/details/12449908 ...

  9. Qt 5.15 LTS(长期支持版本)正式发布

    Qt 5.15 LTS(长期支持版本)正式发布 3D图形抽象API Qt Quick 3D Qt Design Studio 1.5 Qt QML Qt Quick 其他改进 支持周期 本文翻译自:Q ...

最新文章

  1. libevent -简单的异步IO介绍
  2. 【Git1】指令,分支,ssh免密登录
  3. 通过QuartzCore/CoreAnimation.h实现让玫瑰花飞舞
  4. find IBASE structure - CRM_IBASE_COMP_FIND_MULTI - IBSP, IBIB
  5. Java 数组获取最大值和最小值
  6. coxphfit+matlab,Cox Proportional Hazards Model
  7. 微软 Build 2019 对开发者意味着什么?
  8. #import和@class 的区别
  9. 转载:什么是良好的Verilog代码风格?(作者KellenWang)
  10. 清除Outlook 2013中缓存的邮件地址
  11. BZOJ 1597 [Usaco2008 Mar]土地购买 (斜率优化dp)
  12. 【无人机】基于卡尔曼滤波实现无人机捷联惯导算法与组合导航附matlab代码
  13. switch【茶杯头xic】破解xic文件下载
  14. 记湖南省第十六届软件设计大赛
  15. Uniformly Distributed
  16. DOM案例练习-推荐几个DOM小案例练习有示例代码
  17. YOLOv7(目标检测)入门教程详解---环境安装
  18. 组合之分苹果问题(22)
  19. layui ztree 实现下拉树
  20. 2022年Java面试题基础系列228道(1),快看看哪些你还不会?

热门文章

  1. ipconfig /flushdns 可用来刷新dns缓存
  2. 【算法题】统计射击比赛成绩
  3. html 编写个人主页,html ------个人主页制作示例(div布局)
  4. 大脑将会代替开发者的键盘!人类和 AI 能够“双向奔赴”吗? | 近匠
  5. 合伙开公司应有哪些注意事项(整理贴)
  6. 有限合伙企业与普通合伙的区别
  7. 为什么雾霾很严重了才戴口罩?
  8. php学习心得(一)
  9. 云智慧监控宝Docker监控功能评测
  10. 欲戴王冠,必承其重!