Qt 6.11 发布

作者:Volker Hilsheimer | May 14, 2026 9:46:24 AM

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


 

观看亮点发布视频

以下是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。

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 图表,来创建和组合数据可视化方案。这些图表在样式、标签或用户交互方面都具备高度的可定制性。 

亲自试用:风力涡轮机仪表盘可在 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 还解决了 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 用户中心页面下载该版本。