Skip to main content

Qt 6.12 LTS 正式发布!

评论

Qt 6.12 版本现已推出,在网络安全、UI 性能以及跨架构层的功能组合上都有显著提升。作为长周期支持版(LTS),Qt 6.12 凝聚了网络安全、UI 性能等技术栈各个环节的多项成果。一起来深入了解。

要点速览

本次发布包含了丰富的改进、错误修复和新功能。以下是我们的核心亮点速览。

 

向下滚动查看更多细节。

跳至文末查看致谢与下载方式。

6.12 是长周期支持版

Qt 6.12 是长周期支持版(LTS)版本,意味着它将获得为期 5 年的维护支持。

详情见5 年维护周期的长周期支持。

网络安全与 CRA 合规

Qt 6.12 符合欧盟《网络弹性法案》(CRA)的要求,这对在欧盟销售专有产品的企业特别有帮助。但为此进行的网络安全工作对超出该法案适用范围的用户同样受益。

详情见更安全的产品。

全面的 UI 能力

新的加速型命令式绘制引擎 Qt Canvas Painter 已从技术预览版毕业。同时推出了新的 QML Canvas2D 类型以便于使用。详情见Qt Canvas Painter已推出正式版。

Qt Canvas Painter 还提升了图表性能。详情见图表功能升级。

Labs 中推出了一款新的 StyleKit,供你试用。它让你能为同时使用 Widgets 和 Qt Quick 的混合应用创建统一的样式。详情见StyleKit 已在 Labs 中可用:欢迎试用。

简化技术栈复杂度

C++ 容器辅助类 QRangeModel 获得多项改进,包括内置排序支持、拖拽控制、更快搜索以及进一步的定制能力。详情见 QRangeModel 。

QtGrpc 模块在网络效率上有所改进,包括消息客户端压缩和限制传入消息大小。详情见 gRPC 。

QML 热重载

热重载机制现已内置于 QML 引擎。它使你能在编辑 QML 代码时实时预览运行效果。

详情见 QML 热重载。

HarmonyOS 平台支持

Qt 6.12 正式支持 HarmonyOS 作为长周期支持(LTS)平台,为开发者带来与其他主要平台相同的稳定性、维护和支持保障。

详情见 HarmonyOS 平台支持。

其他改进

还有诸多其他改进,例如在 Qt Quick、WebAssembly 和资源减量上的优化。详情见 还有什么新增?

 

观看发布亮点视频

 在这个简短的总结中,Maycon 回顾了自上一个 LTS 版本以来的两年间 Qt 框架的主要更新:

 

5 年维护周期的长周期支持

Qt 6.12 是长周期支持(LTS)版本。Qt LTS 版本旨在在五年的维护周期内提供稳定性和可靠性。对于开发专有软件的企业来说特别有价值;多个 LTS 版本可以重叠存在,让你能有计划地分阶段升级到新版本。

每 2 年发布一个新的 Qt LTS 版本,现在 6.12 是最新的。

Qt 6.12 LTS 在时间线上与其他 Qt 6 次版本的对比

 了解更多 Qt LTS 版本信息:qt.io/development/qt-framework/qt-lts

 

更安全的产品

对于向欧洲市场销售专有产品的企业来说,符合新的欧盟《网络弹性法案》(CRA)变得紧迫。但为实现法规合规而进行的网络安全工作,同样惠及那些不在 CRA 适用范围内的开发者。

超越法规的网络安全

除却法规要求外,Qt 6.12 LTS 还提供多项改进以帮助你构建更安全的软件。该版本不含已知可利用的漏洞,并默认安全,同时提供持续的安全更新、新的漏洞披露流程,以及为商业客户保证的响应时间(SLA)。安全关键项在 Qt 源代码文件中被标注,安全测试信息公开共享。此外,我们承诺集成最新的第三方库。

关于第三方依赖,也可以观看 Maurice 的视频,了解依赖项如何增加软件栈复杂度以及为什么其风险比你想象的更大。

Qt 6.12 符合 CRA 要求

商业版 Qt 6.12 LTS 现已符合欧盟《网络弹性法案》(CRA)的要求,让你能按时准备好合规的产品。CRA 的第一个截止日期已于 9 月 11 日通过,最终截止日期也即将到来。该法规对内部流程、法律评估以及产品相关方面提出了许多要求。

Qt 6.12 的构建满足 CRA 目前已知将于 2027 年 12 月生效的要求。在后续的维护版本中,我们将继续确保 6.12 版本在整个 5 年支持期内符合该法规。这不仅让你能按时准备好产品,还提供了一个可长期依赖的基础。Qt 6.12 附带 CRA 合规声明,这并不会使你的产品自动符合 CRA 要求(你仍然需要自行完成 CRA 认证),但确实为你的产品中 Qt 部分提供了许多现成的支持。

此外,Qt 框架还帮助你满足 CRA 的技术特性要求,如默认安全的认证与验证、软件物料清单(SBOM)以及安全设计软件。

了解更多关于 Qt 6.12 如何显著减少你的 CRA 相关工作与风险:

 

全面的 UI 能力

我们的 UI 框架持续引入新能力以创建现代用户界面。过去几年中新增了多个 Qt Quick 控件,如 Safe Area、Context Menu、Search Field 和 Double Spin box,以及一个新的布局类型 Flexbox。我们还扩展了 Vector Image 模块,为 SVG 和 Lottie 文件提供了更多属性和动画支持。

在全新功能方面,我们一起来深入了解新的加速型命令式绘制引擎和便于使用的 QML Canvas2D 类型,以及它如何改进图表性能。此外,我们诚邀你试用我们的新 StyleKit 。

Qt Canvas Painter 已正式推出:高性能绘制的新方式

在 Qt 6.11 作为技术预览版在今年早些时候推出后,我们收到了大量宝贵的反馈。这个命令式绘制 API 为 C++ 和 QML 提供了基于 GPU 硬件加速的渲染能力,可使用着色器实现丰富的高性能视觉效果 —— 这显然是 Qt 长期以来缺失的功能。在 Qt 6.12 中,经过大量优化工作、API 改进和功能补完,我们将该模块的核心 API 推出正式版。它已可用于 C++ 和 QML 开发者的生产环境,我们期待看到你们创建的作品。

最重要的新增是 Canvas2D 元素。Canvas2D API 是基于 HTML Canvas 的设计模式,让你可以通过 JavaScript 来定义绘制形状,然后由 Qt Canvas Painter 通过 Qt 的渲染硬件接口(QRhi)在 GPU 上高效渲染[注:在 QML 环境中运行,非浏览器 JavaScript]。Canvas2D 是 Qt Quick Canvas 元素的重大架构升级和现代替代方案。

Canvas2D 示波图示例

作为全新 API,Canvas2D 元素及其配套的 C++ 类 QCanvasCustomBrush 仍处于技术预览版阶段。

阅读更多关于 Qt Canvas Painter 的内容,详见 Kaj 的博客:

图表功能进化:灵活性与高性能

Qt Graphs 也获得了多项改进。应社区需求,我们为 Graphs2D 功能添加了对数坐标轴,以及更多坐标轴标签定制选项。内置缩放和平移交互使最终用户操作变得更容易,同时性能和可用性也有多方面提升。

针对高性能场景,特别是在可视化大量快速变化的数据时,我们实现了基于 CanvasPainter 的 2D 图表渲染后端,目前可通过配置时的选项启用。在将其设为默认值之前,我们要确保它足够稳定,因此期待你在使用这个后端时提供的反馈。

StyleKit 已在 Labs 中可用:欢迎试用

新的 StyleKit 模块同时解决了多个问题:为同时使用 Widgets 和 Qt Quick 的混合应用创建统一样式;以现代、设计系统友好的方式实现,能与 Figma 等工具中的定义方式清晰映射;UI 组件结构与可样式化属性的清晰分离,使你能轻松定义深色、浅色和高对比度主题,而无需重复指定"按钮是带标签的矩形"这类细节。

Qt StyleKit 提供了基于 QML 的样式 API,让你从单一源头(配置几何尺寸、颜色等属性值对)为 Widgets 和 Qt Quick 双方应用样式。

Qt 6.12 试验室版本中 StyleKit 示例

得益于属性传播机制,使用 StyleKit 定义样式能大大避免重复;同时利用成熟的 QML 属性动画技术,可轻松定义控件与组件状态间的平滑过渡。对主题、控件变体和自定义控件扩展的支持,使 StyleKit 成为定义复杂用户体验设计的强大方案,能在不同设备、系统配置以及用户偏好下均呈现良好效果。

在相关论坛讨论中了解更多详情并分享你的想法:https://forum.qt.io/topic/165049/stylekit

 

简化技术栈复杂度

除了 UI 以外,我们在整个架构层面都在努力提升效率、降低复杂度。我们在不断寻找新方式,让你能更容易地整合旧代码与新代码,在架构层、API、工具乃至从桌面到 MCU 的不同平台上复用你已掌握的知识。以下是 6.12 发布的核心亮点。

QRangeModel

QRangeModel 在 Qt 6.10 中推出,之后在 Qt 6.11 中再获改进,在本次发布中继续优化。简而言之,QRangeModel 是一个辅助类,能将常规的可迭代 C++ 容器转换为 Qt 模型/视图框架能轻松显示的类型。

Qt 6.12 新增的功能包括内置排序支持,让模型能直接排序其数据而无需额外的类;新增属性来控制允许的拖拽操作类型及操作时现有数据的处理方式;match() 方法的搜索性能提升;针对表头数据和逐行/逐项行为的进一步定制选项——这些构成了本次发布的主要改进。

gRPC

QtGrpc 模块在 6.12 中的重点是网络效率。消息客户端压缩功能让你能选择和应用可用的压缩算法以节省通信带宽。此外,你现在也可以限制服务器传入消息的大小,保护客户端免受意外大型或畸形响应的冲击。

 

其他重要改进

虽然改进内容众多,但我们这里重点关注 QML 热重载和对新平台 HarmonyOS 的支持。

QML 热重载:编辑中实时看到效果

QML 引擎已扩展以原生支持热重载机制,qmlpreview 工具也已重构以使用它。这使你能在 IDE 中实时预览运行的 QML 代码,在你编辑时直观看到修改对 UI 的影响。

热重载在 Qt Creator 和命令行工具 qmlpreview 中均可用。

想了解 QML 热重载的更多细节、工作原理和未来规划,可阅读 Ulf 的博客:

HarmonyOS 平台支持

从 Qt 6.12 起,Qt 正式支持 HarmonyOS 作为长周期支持(LTS)平台,为开发者提供与其他主要平台相同的稳定性、维护和支持保障。这进一步强化了 Qt 的跨平台特性;现有 Qt 应用可直接扩展到 HarmonyOS 而无需重新架构代码,大幅减少开发时间,加快上市速度。

HarmonyOS 在中国已覆盖从物联网、汽车到 PC 和平板等多种设备类别,Qt 的支持为生态打开了双向大门:中国的 Qt 应用能够接触到全球受众,而进入中国市场的企业也获得了一条经过验证、有 LTS 保障的进入华为平台的途径。

还有哪些新增?

上文列举了 Qt 6.12 的部分主要新增功能。在《Qt 6.12 新增功能》文档中,你会找到更多内容,如新的 QtQuick.Controls.Native 样式、Qt Quick 3D Physics 的额外关节类型、WebAssembly 音视频改进,以及资源编译器(rcc)中通过内容去重带来的更小的编译资源。

 

致谢

Qt 6.12 是 Qt 社区众多人员共同努力的结果,我们感谢所有的贡献者。所有为本次发布提交代码的贡献者名单列在发布说明末尾。

代码只是产品发布的一部分。缺陷报告、功能请求、以及对测试版和技术预览版的反馈都塑造了 Qt 6.12。感谢所有花时间分享这些的人,也要特别感谢幕后为发布付出努力的每一位!

立即更新

如往常一样,新版本可通过 Qt 安装程序获取。你也可以通过我们的官网或 Qt Account页面下载 Qt 6.12 LTS。

评论

Subscribe to our blog

立即体验 Qt 6.12!

点击此处下载最新版本:www.qt.io/download

Qt 6.12 LTS 现已发布,为应用程序开发者和设备制造商带来了新功能和改进。

我们正在招聘

点击此处查看所有职位空缺并关注我们的Instagram账号,了解成为#QtPeople的感受。