Back to Blog home

Qt 6.11 正式发布!

Published on 星期四 五月 14, 2026 by Volker Hilsheimer in Releases Qt 6 Qt 6.11 | Comments

Qt Framework 6.11 版本现已发布,在图形、连接性和语言能力方面带来了性能提升和新技术的支持,同时还引入了全新的异步 C++ 编程方式。 让我们来一探究竟。 

发布概览

本次发布同样带来了大量改进、修复和新功能。我们来看一下更新亮点。

 

向下浏览,了解更多。

跳转至末尾查看 致谢和下载方式

硬件加速 2D 渲染

新增模块 Qt Canvas Painter,基于 HTML Canvas 2D Context,可带来性能和开发效率的双重提升。更多详情请参阅《2D 渲染性能与效率提升:Qt Canvas Painter》。

3D 功能改进

新的渲染技术:屏幕空间全局光照(SSGI)作为光照贴图烘焙的选项,以及屏幕空间反射(SSR)。同时,基于运动向量的时域抗锯齿算法也得到了改进。更多信息请参阅 《全新实时渲染技术:SSGI 与 SSR》

QML 中新增了可由用户定义的渲染通道,可直接实现后期处理效果、颜色拾取、图层蒙版等功能。更多详情请参阅高级渲染通道自定义。

交互式图表

您现在可以实现自定义图表,由用户定义的委托渲染每个数据点。新增了 Qt 示例——风力涡轮机仪表盘,并进行了多项改进,例如折线图的新样式方案以及 3D 图表的多坐标轴支持。详情请参阅 《创建与交互图表的新方式》。

异步编程的声明式方法

Qt Task Tree 为 Qt 中的异步编程和 C++ API 设计带来了全新方法。此外,各类 API 已实现统一,使任何异步任务都能适配该新模块。详情请参阅 《异步编程的声明式方法:Qt TaskTree》。

其他改进

矢量图形、控件和无障碍功能的改进。 详情请参阅 UI 框架和 2D 新增功能。

通过新模块 Qt OpenAPI,连接网络服务现在更加便捷。详情请参阅 《网络与连接性改进》。

在 IDE 中实现 QML 与 C++ 之间的跳转,以及将 C++ 后端数据提供给 Qt Quick 使用,都变得更加简单。详情请参《更简单的QML 与 C++ 集成》.

此外还有大量其他改进,涵盖多媒体、Android 及 API 文档等领域。详情请参阅 《还有哪些新功能?》。


 


 

观看亮点发布视频

以下是Maycon 对本次发布亮点的总结:

 

提升性能和生产力:专为 2D 渲染而生的 Qt Canvas Painter

本次发布带来了使用 Qt 进行 2D 图形绘制的新方式:Qt Canvas Painter。这是一个全新的模块,基于 Qt 的渲染硬件接口(RHI)构建,具备命令式 2D 图形渲染能力。硬件加速为您的 UI 图形带来了显著的性能提升,基准测试显示,相比之前的 QPainter OpenGL 后端模块,其速度有了大幅提升。

Qt Canvas Painter 严格遵循大家熟悉的 HTML Canvas 2D 上下文规范,得以快速上手,从一开始就提供高效生产力。

除了性能和开发效率提升,新模块还带来了一些出色的高级特性。包括可调的抗锯齿、盒状渐变和阴影、网格图案、自定义着色器画笔和颜色效果——支持现代化、视觉丰富的 UI 和高效的 GPU 驱动绘图工作流。

请观看 1 分钟的预告视频:

深入了解 Kaj 的博客系列:

 

最佳 3D 框架的改进

Qt 已经演进到能提供与游戏引擎相同的 3D 功能,同时保持一致的高性能。这意味着即使使用复杂的元素、特效或动画,使用 Qt Quick 3D 的 UI 也能流畅运行。

新的实时渲染技术:SSGI、SSR 和运动矢量

Qt 6.10 版本改进了光照贴图烘焙技术(一种模拟光线与静态物体交互的技术),而 6.11 版本则引入了其动态替代方案。SSGI (屏幕空间全局光照)是一种渲染技术,可通过后处理效果模拟光线在屏幕表面上的反弹,并实时响应变化。不过,SSGI 会带来一些性能代价,因此建议在资源有限的目标上使用光贴图烘焙,而在性能敏感度较低的应用上使用 SSGI 制作丰富的 3D UI。

A 3D UI example scene showing SSGI vs lightmap baking in the Qt 6.11 release highlights

6.11 中另一项新的实时渲染技术是屏幕空间反射(SSR)。类似于 SSGI它利用屏幕上可见的内容来渲染反射效果——其原理是对每个像素进行光线步进计算,并根据场景信息生成对应的反射效果。 

更多信息:

此外,通过场景环境(SceneEnvironment)扩展场景环境(ExtendedSceneEnvironment)类型,Qt Quick 3D 支持多种用于 3D 物体抗锯齿渲染的技术。时域抗锯齿和运动模糊在减少动态对象的锯齿感方面表现尤为突出。在 Qt 6.11 中,我们新增了基于对象的动态矢量生成功能,它在计算成本和输出保真度之间实现了极佳的平衡。

高级渲染通道自定义

对于需要高级视觉效果、优化性能或集成自定义技术而需要超越默认渲染管道的用户,Qt Quick 3D 现在提供了自定义渲染通道的选项。新的图层和标签 API 可以指定哪些项目应包含在渲染管道的不同部分,将它们导向不同的渲染目标,并对单个渲染通道进行控制。你可以复用现有的材质,用附加着色器增强材质,或覆盖材质的某些方面。所有这些新增的灵活性都可通过 QML 直接使用。

查看 Qt 6.11 中 Qt Quick 3D 的更多示例:

创建和交互图表的新方法

图表方面,我们提供了一个新的 Qt 示例--风力涡轮机仪表盘,展示了从简单的 2D 演示到复杂的 3D 图表,来创建和组合数据可视化方案。这些图表在样式、标签或用户交互方面都具备高度的可定制性。 

New Graphs Example in Qt 6.11: the Wind Turbine Dashboard

亲自试用:风力涡轮机仪表盘可在 Qt 示例中找到(请确保已安装 Qt Graphs 模块)

在这个新示例中,您可以看到 3D 图形现在支持多坐标轴展示。您可以为QBar3DSeries 中的rowAxisvalueAxiscolumnAxis属性,或QScatter3DSeriesQSurface3DSeries 中的axisXaxisYaxisZ属性使用不同的轴实例。我们为 Graphs 模块中的不同元素添加了多个新属性,以便对图形的渲染方式进行更多控制,从覆盖单个轴的主题颜色和区域图形中的渐变到折线图的线条、描边和连接样式。Bar3DSeries 中的标签可以更灵活地自定义和定位,QDateTimeAxis 可以使用时区并允许平移和缩放,QSplineSeries::optimizedGraphsItem3D.cutoffMargin等属性允许进一步微调。

如果这还无法满足您的需求 ,新的CustomSeries类型允许实现完全自定义的图形,可为每个数据点定义其专属的渲染方式。 

异步编码的声明式方法:Qt TaskTree 

Qt TaskTree 是一个新模块,在 Qt 6.11 中作为技术预览版提供。

Qt TaskTree 为 Qt 的 API 设计带来了全新的视角,为 C++ 引入了一种声明式描述方法。异步工作流通过 recipe(一个传递给 TaskTree 的可复用对象)以声明式描述的形式表达,然后由任务树自动管理整个流程。这清晰地将工作流与模板代码分离,使得代码比传统方法更具可读性。任务树会自动为您处理繁琐的任务,即使面对复杂的工作流,也能在一个地方清晰而精确地描述出来。

Qt TaskTree Example in Qt 6.11

此外,Qt TaskTree 还解决了 API 不兼容的问题,将各种异步 API 统一到一个通用接口中,并允许调整任何异步任务,使其与模块协同工作。

Qt TaskTree 是一项重大变革,它从根本上改变了我们编写和读取异步代码的方式。

更多信息:

 

其他显著改进

Qt 6.11 发布的其他一些重大改进包括 UI 框架的新功能、更便捷的Web服务连接和其他连接性改进,以及更轻松地集成 QML 和 C++。

UI 框架和 2D 新增功能

在改进对Lottie 和 SVG 矢量动画的支持方面,我们得到了很多很好的反馈。现 Qt 6.11 中,我们继续推进这项工作。我们现在支持路径和形变动画,以及遮罩层、SVG 遮罩和 SVG 符号。我们遵循 CSS 动画时序函数的预定义子集,并且用于 Qt Quick VectorImage 模块的 Lottie 后端以及 lottietoqml 工具现已结束技术预览阶段,正式进入稳定状态。

在 UI 框架方面,我们为 Qt Quick Controls 添加了备受期待的 DoubleSpinBox,添加了控制 DialogButtonBox 中默认按钮处理的 API,并允许独立控制 RectangularShadow 效果的角半径。

对于 Qt Widgets 用户,我们整合了多项贡献,新增以下功能:为 QWizard 添加新的StretchBanner 选项、支持通过新的 keyboardSearchFlags 调整 QAbstractItemView 默认键盘搜索行为的可能性,以及控制QColumnView 中预览列可见性的能力。

Qt Quick Controls Qt Widgets ,我们改进了无障碍客户端 UI 元素间导航的方式,以及获取角色和方向变更通知的方式。

Web和连接性改进

在 Qt 6.11 中,我们继续关注与 Web 服务的集成。有了 Qt OpenAPI 模块,可以轻松生成使用 Qt Networks RESTful API 的 Qt HTTP 客户端代码。该生成器是 OpenAPI Generator 的一个插件,因此它可以使用 OpenAPI YAML 规范,具有高度可定制性,并与 CMake 构建系统集成。

更多信息:

对于 Qt GRPC,我们新增了控制请求和响应流程及内容的机制。Qt HTTP Server 模块通过多项改进,让实现可扩展服务器更容易,包括对限制参数的控制,以及在工作线程中处理响应的能力。在底层,QNetworkRequest 现在可以为当前请求指定 TCP Keep Alive 参数,默认情况下,非活跃连接将在 2 分钟无活动后自动终止。

简化 QML 与 C++的集成

QML 语言服务器现在能识别 QML 类型的 C++ 定义所在位置,从而可以在 IDE 中轻松地实现两种语言之间的跳转。C++ 代码可以通过 ID 查找 QML 对象,并且现在可以轻松遍历 QML 上下文的层次结构。在 C++ 中声明的属性可以显式标记为 virtual overrides,以防止属性被意外遮蔽。

继 Qt 6.10 中引入 QRangeModel 后,QRangeModel 又新增了一个配套类QRangeModelAdapter它提供了一个遵循 QAbstractItemModel 协议的 C++ API,用于修改模型数据。对于每一行或每个项都由相同的 QObject 子类支持的数据,QRangeModel 可以自动将每个对象的属性更改通知连接到 dataChanged() 信号,从而无需额外代码即可让 UI 及时了解数据变化。这样,无需使用 QAbstractItemModel API,Qt Quick(或 Widget)项目视图就能更轻松地使用来自 C++ 后端代码的数据。

更多信息:

还有什么新内容?

以上重点介绍了 Qt 6.11 中的一些重要新增功能。在 "Qt 6.11 新特性"文档中,您还会发现许多其他特性,例如用于实时音频处理的新 Qt Multimedia  API。由于 Qt Jenny、QtQuickView 和退出 QJniObject 默认异常处理功能的改进,针对 Android 平台的开发人员将发现从 C++ 调用 Java/Kotlin API ,反之亦然。

如果您使用 qdoc 为自己的 API 编写文档 ,您会发现一长串新命令,这些命令尤其适用于现代 C++ 使用概念。改进后的现代 C++ API HTML 的渲染,使得阅读 Qt 中一些模板繁重的 API 更加容易。

致谢

感谢所有为 Qt 6.11 发布做出贡献的各位。您可以在发布说明的末尾找到为 Qt 源代码提供补丁的所有社区成员的完整列表。

特别感谢所有通过报告缺陷、分享使用场景以及提供反馈来帮助 Qt 变得更好的朋友们,尤其是在 Beta 测试期间针对技术预览模块和新功能提出的宝贵意见。最后,我要感谢所有参与发布工作的人员!

立即更新

与往常一样,您可以通过 Qt 安装程序获取新版本,您也可以通过我们的网站或您的Qt 用户中心页面下载该版本。

Subscribe to Our Blog

Stay up to date with the latest marketing, sales and service tips and news.