Qt6.5于2023.04.03发布,这是Qt6第二个长期维护版本,相对Qt6.2增加了不少东西,稳定性也更高,想从Qt5升级Qt6的话,Qt6.5是一个很好的选择。
下面是官方发布的文章介绍,原地址点这里
今天我们发布了 Qt 6.5!在 Qt 6 系列的第 6 版中,我们为图形和 UI 开发人员以及应用程序后端引入了许多新功能。此外,Qt 6.5 带来了许多修复和一般改进,并将成为商业许可证持有者的长期支持版本。
让我们从 Qt 6 应用程序几乎免费获得的一些亮点开始。
借助 Qt 6.5,应用程序可以轻松支持Windows 上的深色模式。在 Windows 上,支持深色主题是应用程序开发人员必须做出的明确选择。如果应用程序希望窗口背景为浅色,则将应用程序隐式切换到暗模式可能会破坏许多用户界面。但只要应用程序使用的样式不会显式覆盖调色板,例如 Fusion 样式,Qt 就会尊重用户对配色方案的选择,并使用深色系统调色板。Qt 还会将标题栏和窗口框架配置为与整体外观同步。
此外,应用程序可以通过处理QStyleHints::colorScheme属性更改通知来响应系统主题的更改。
在 Qt Quick Controls 中,我们完成了 iOS 风格,还实现了许多在原生 iOS 上没有等效控件的控件。对于面向 Android 的应用程序,我们已将 Material 样式更新为 Material 3 设计系统。使用 Material 风格的应用程序将自动获得焕然一新的外观。我们添加了一些 API 以允许 UI 开发人员修改某些视觉方面,例如TextField 或 TextArea 的containerStyle ,或按钮、弹出窗口和抽屉的roundedScale。
在 macOS 上,使用 QMessageBox 或 QErrorMessage 的应用程序将显示具有现代居中 UI 设计的本机对话框。
在 Qt 6.5 中,我们添加了对 Android 12 的支持,同时确保 Qt 在旧版本上继续按预期工作。即使平台发生了重大变化,您的 Qt 应用程序的单个构建现在也可以部署到运行8 到 12 的任何 Android 版本的设备 ,而无需任何更改。
我们已经为设备制造商升级了我们的 Boot2Qt 软件堆栈,以使用 Yocto 4.1 (Langdale) 版本,它可以访问许多行业的嵌入式硬件的应用程序开发。在 Linux 桌面上,商业Qt 6 Debian 11 软件包 稍后将 通过 提供,这使得部署可以方便地将商业 Qt 应用程序部署到基于 debian 的 Linux 发行版。 apt
Qt 6.5 for WebAssembly 是 Qt 6.4 中最初受支持版本的后续版本,并添加了对视频渲染和小部件可访问性的支持。Qt WebEngine 已更新至 Chromium 108,甚至包括 Chromium 110 安全补丁。现在它支持在 Vulkan 下的 Linux 上为 X11 和 Wayland 进行硬件加速视频渲染。
新的Qt Quick Effects模块使 Qt Quick UI 开发人员可以访问现成的图形效果,这些效果可以组合成一个单一的效果,而不会造成性能损失。交互式Qt Quick Effect Maker工具可以轻松构建和组合复杂的自定义效果。这些技术的组合用性能更好、更易于使用且扩展更灵活的解决方案取代了 Qt 5 中的 Qt 图形效果模块。
Qt Quick 3D 学会了如何自动和明确地调整模型的细节层次,因此可以生成简化的网格并将其用于远离相机的对象。通过SceneEnvironment对雾的新支持,远处的物体也可以淡出。对于更复杂的后处理效果,ExtendedSceneEnvironment允许将景深、发光或镜头光晕等效果组合成一个单一的高性能后处理效果,只需要一个渲染通道。
通过 Qt 网络中的 Qt 低级类以及对JSON和CBOR的高级序列化支持,与 Web 服务的通信和设备之间的数据交换一直是可能的。
通过新的Qt GRPC Qt 模块,我们现在添加了一个框架,用于在 Qt 中集成gRPC和Protocol Buffer技术。Qt GRPC允许与 gRPC 服务进行通信,并且与Qt Protobuf一起,它提供了用于序列化基于 Qt 的类的基础结构。使用这些模块,开发人员可以在 protobuf 规范 ( ) 文件中定义数据和消息。Qt 将标准工具集成到构建系统中以生成 C++ 类型,应用程序可以通过这些类型与服务端点进行通信。 .proto
在Qt Network中,我们引入了配置HTTP 1连接的能力,我们在Qt Serial Bus模块中增加了多个CAN总线支持类,提供对CAN总线消息的编解码、处理帧、解析DBC文件的支持。
gRPC、protobuf 和 CAN 总线的添加都在 Qt 6.5 的技术预览中,我们期待您的反馈!
Qt Location 模块作为技术预览返回到 Qt 6.5 中。正如几个月前在另一篇博文中描述的那样,Qt 6 版本的 Qt Location 少走弯路。项目的呈现现在通过 Qt Quick Shapes 实现,并且由于 Qt 6 中改进的 QML 类型系统,我们已经能够删除很多包装类。在 Qt 6 的 Qt Location 初始版本中,我们仅支持 Open Street Maps 后端。我们删除了一些通过通用 API 可用的功能,但仅针对单个后端实现。有关 API 更改列表,请参阅移植指南。
我们将 Qt Quick Map 组件分为两种类型:Map类型负责显示地图但不提供任何交互性。新的MapView类型取代并实现了典型的交互功能,例如通过 Qt Quick 输入处理程序进行缩放和平移。 MapGestureArea
虽然模块本身处于技术预览阶段,但对 GeoJSON 的支持与模块的其余部分相当,不再处于试验阶段。
Qt 6.5 在 Qt 6.4 和之前的 Qt 6 版本的基础上添加了大量新功能,这篇博文重点介绍了这些改进。在深入了解每个模块的细节之前,也许现在是向那些今天仍在使用 Qt 5.15 的人指出总体功能比较页面的好时机。
在应用程序可以访问某些服务之前,许多平台需要用户的明确许可。使用 Qt 的新权限 API,应用程序现在可以检查和请求需要此类同意的功能的权限。在这个第一个版本中,我们包括请求访问设备的位置、蓝牙、相机和麦克风功能以及访问用户日历和联系人数据的权限的类型。
需要通过本机剪贴板交换平台特定数据格式的应用程序现在可以实现QWindowsMimeConverter和QUtiMimeConverter以支持 Windows 或 macOS 特定格式。如果您在 Qt 5 中有or的实现,那么这些将几乎直接转换为新的 API,但需要更少的样板代码来向 Qt 注册转换器。 QWindowsMime QMacMime
新的setBadgeNumber API使应用程序可以轻松地通知用户有关停靠栏或任务栏中可操作项目(如未读消息)的数量。 QGuiApplication
我们更新了 Vulkan 支持以使用现代底层基础设施,添加了对可检查列表项的降价和 HTML 支持,并提供了对QTextLayout 中一系列字形的字符串索引的访问。
FFmpeg 媒体后端现在是 macOS、Windows、Android 和桌面 Linux 的默认设置 - 在嵌入式系统上,GStreamer 仍然是默认设置,但可以显式启用 FFmpeg。该后端使相同的功能在几乎所有平台上始终可用。Qt Spatial Audio模块在作为 Qt 6.4 的技术预览引入后现在得到了完全支持。
只要使用 FFmpeg 后端,Qt 应用程序现在就可以使用新的QScreenCapture类捕获屏幕,这是一种新型视频输入。来自屏幕录制的视频可以被引导通过以进行进一步处理,例如或. QMediaCaptureSession QMediaRecorder QVideoWidget
Qt Quick Compiler的一个工具,QML类型编译器, qmltc,现在支持更多 QML 结构,最显着的是翻译绑定、内联组件、单例和信号处理程序。在工具qmlcachegen和 中实现的 QML 脚本编译器现在可以处理更多的 JavaScript 结构,例如通过,和输出,或通过 构建字符串。这些改进在 Qt Quick Compiler 的两个版本(Qt 6.5 中包含的双重许可版本)和仅用于商业的 Qt Quick Compiler Extensions 附加组件中均可用。所有这些导致从 QML 和 JavaScript 生成更多更好的 C++ 代码。 qmlsc console let const arg
Qt 6.5 中的QML模块改进使得通过模块 URI 和类型名称创建 QML 元素变得更加简单。对序列类型的支持已经标准化和扩展,支持、或 等方法。具有合适的构造函数或注册为结构化类型的值类型可以直接从 QML 实例化。这消除了在单例 C++ 类型中对构造函数辅助函数的需要。 map() reduce() forEach()
TableView 获得了对交互功能的支持,例如单元格的就地编辑、调整行和列的大小以及多选。TreeView 的委托还支持就地编辑,并且Qt Quick 输入处理程序获得了一些新属性。
只要底层系统支持,QOpenGLWidget 现在就支持立体渲染。
我们还对 QKeySequenceEdit 进行了一些较小的添加,现在可以将其配置为限制按键序列的长度 ,并允许最终用户使用一个或多个按键组合完成记录序列。
除了上述之外,我们还通过将时间规范折叠到; 中简化了和API 。我们使带有通知信号的属性更容易使用,并在使用BoundaryRule处理动画时为应用程序提供更多控制。定位感知应用程序可以直接从 QML 使用新类型。 QDateTime QDate QTimeZone QBindable SatelliteSource
Qt 6.5 是 Qt 6 的第二个 LTS 版本,在 Qt 6.2 LTS 版本发布后的过去 18 个月里,我们添加了许多新功能。在这样做的同时,我们还修复了很多错误:根据我们的 JIRA 错误跟踪器,我们在那个时间段内修复了近 3500 个票证!我们还利用时间和您的反馈来提高新功能的稳定性。在 Qt 6.5 中,我们作为 Qt 6.4 的技术预览引入的Qt Quick 3D Physics模块已经成熟,现在已得到完全支持。
我要感谢所有帮助 Qt 6.5 成为现实的人。您可以在发行说明的末尾找到 Qt 源代码的所有 286 位贡献者的完整列表。我还要感谢所有通过报告错误、向我们发送反馈或告诉我们您的用例来帮助改进 Qt 的人。最后但同样重要的是,我要感谢所有保持我们的 CI 和代码审查系统运行的人。
与往常一样,新版本将在 Qt 安装程序中可用。您还可以从我们的下载页面或您的Qt 帐户页面获取该版本。