Qt 6.9 现已全面推出,为应用开发者和设备制造商带来诸多新特性与改进!作为亮点之一,升级至 Qt 6.9 可将现有应用的 Emoji 渲染提升至最新标准,支持 Qt Quick 3D 的无序透明渲染(Order Independent Transparency),大幅增强对现代 OAuth2 需求的适配能力,并在全平台设备上新增多项性能优化功能。
此外,新增的 API 和新功能也全面提高了开发灵活性和工作效率。
核心亮点速览:
3D 图表渲染能力显著增强,新增对 Surface3D 透明度的支持,引入 QSpline3DSeries 以渲染3D样条数据,并提供更多图表、坐标轴与标签的自定义选项。现在,将图表嵌入 Qt Quick 3D 的 View3D 中变得轻而易举,从而在3D场景中实现极具表现力的数据可视化。
2D 图表的输入处理现已支持灵活自定义,QGraphsView 可配置 plotArea 以精细控制图表渲染的矩形区域,细化图形渲染矩形的定位。
请阅读博客《Qt Graphs 6.9 新功能详解》,深入了解 Qt Graphs 的改进。
Emoji 是全球最流行的书写系统之一,且其规范持续演进。自 Qt 5.2 添加彩色字体支持以来,Emoji 领域已发生诸多变化,Qt 6.9 正迎头赶上。
Qt 现能自动检测文本中的 Emoji 序列,并根据 Unicode 规范按需选用正确的彩色字体。开发者可对此过程进行控制:禁用解析、在源码编译时完全排除 Emoji 分割器,或通过 QFontDatabase 的新 API 为Emoji 指定特定的字体系列。目前Emoji 支持的字体格式包括 CBDT 和 COLRv1,可实现跨平台高质量缩放渲染。
请阅读博客,纵览 Emoji 发展史及 Qt 6.9 的支持详情。
现代桌面和移动设备上应用设计的核心理念是内容至上——应用与系统 UI 元素以非侵入方式无缝融入内容。Qt 6.9 通过 Qt.ExpandedClientAreaHint 窗口标志及 Qt Quick 的 SafeArea 附加属性引入新 API,支持此类设计需求。结合使用这些 API,应用内容可充满整个窗口或屏幕边缘,同时避开关键系统 UI 元素。
请阅读博客,获取此新功能的更多细节。
Qt 的 SVG 模块现已在 SVG 光栅化为像素图序列时,支持对颜色、填充、描边和形变的CSS动画的初步实现。同时,Qt 6.8 中引入了 VectorImage ,借助 VectorImage,动画 SVG 现在可以直接渲染到 Qt Quick 场景图中。
由浏览器渲染 |
由 Qt 渲染 |
每个 Qt 版本均致力于简化跨平台设备的性能优化应用开发。除代码改进外,Qt 6.9 新增对平台或图形子系统新特性的支持。
现代 CPU 架构普遍包含性能核与能效核,QThread 现在可以设置执行任务时偏好的CPU核心类型。
在支持OpenGL 平台上使用QQuickPaintedItem的用户可以再次使用 FramebufferObject 作为渲染模式,从而在硬件加速和命令式绘制阶段受益。
OpenGL ES RHI 后端在可用时会利用多重采样渲染扩展,提升现代 GPU 架构上 Qt Quick 与 Qt Quick 3D HMI 的渲染性能。
在 Windows 平台上,Direct 3D RHI 后端通过专用的垂直同步监视线程 (vblank)驱动刷新,降低 CPU 负载与延迟。显著改善拖拽等 UI 交互操作的响应速度。
除 OpenGL 外,其他 RHI 后端现支持可变速率着色(Variable Rate Shading),为 visionOS 上的 Qt Quick 3D XR 提供动态注视点渲染支持。
Qt Quick 新增的RectangularShadow元素以及 Qt Quick 3D 中阴影贴图边界控制的改进,使UI开发人员能够优化阴影和光晕效果的使用,避免高昂计算开销。
使用 Qt 项视图(Item Views)开发的 Widget 应用程序可以在处理数据频繁批量变更的模型时进行调优性能;而且只要禁用段的大小调整(resizeSection)和重新排序,QHeaderView的内存占用就会得到显著优化。
Qt Quick 3D 现在支持 "无序透明渲染"(Order Independent Transparency),无需手动按深度排序透明物体即可渲染。虽然这需要一定的计算和内存成本,但可消除因排序不当(尤其是物体交叠时)而导致的视觉错误。我们已经在 Qt Graphs 中使用这种技术来渲染半透明表面图,但其同样适用于任何模型(包括实例化)。
Qt 6.9 支持加权混合(Weighted Blended)技术,在成本、性能与精度间实现良好平衡。
在 Qt 6.8 以及 Qt 6.9 中,Qt 网络授权(Qt Network Authorization)模块显著增强以满足现代 OAuth2 需求。值得注意的是,它增加了对 "设备授权许可"(Device Authorization Grant)的支持,便于输入能力受限设备(如电视与IoT设备)的用户认证。引入 OpenID Connect 中获取 ID 令牌的基础功能,使应用能访问用户身份信息。现在,该模块允许使用其他浏览器用户代理(包括使用 Qt WebEngine)进行身份验证,提供更高灵活性。为优化令牌管理,新增访问令牌临近过期的信号提醒,并支持自动刷新令牌。此外,该模块还能区分请求域和授权域,确保应用能基于用户授权权限精准调整行为。
请阅读博客, 了解 Qt Network Authorization 新功能的完整细节。
尽管 Qt HTTP Server 设计用于可信环境,我们仍额外强化其安全性。现在可以通过 QHttpServerConfiguration 类型配置传入请求的最大数量,从而防止DoS (Denial-of-Service) 攻击,暴力破解攻击或爬虫攻击。HTTP/2 客户端可通过 QHttp2Configuration 控制并发流的最大数量。
Qt Quick 开发者将受益于更佳工具支持与新功能。QML 语言服务器现提供大纲视图,助力 IDE 与编辑器展示 QML 文档结构的层次化呈现(包括对象、属性与方法)。
新增 ContextMenu 组件,开发者可轻松地将上下文菜单附加到项目上(响应右键点击等平台特定事件)。此外,TextField 与 TextArea 现提供默认上下文菜单(除非指定自定义菜单)。
最后,OpenXR 新增了 Metal 后端支持,允许应用在 macOS 上的 Meta XR 模拟器中运行。
Qt 6.9 在现有 Qt 6.8 LTS 版本基础上新增诸多改进与特性,保持与所有 Qt 6 版本的二进制与源码兼容性。经过 Beta 包广泛测试与大量用户反馈,我们确信升级至 Qt 6.9 以利用这些改进将顺畅无阻。有关新的 API 的完整列表,请参阅我们的文档。衷心感谢所有贡献者!您可以在发布说明的末尾查看为 Qt 源代码提供补丁的所有社区成员的完整名单。
Qt 5.15 的标准商业支持将于 2025 年 5 月 26 日结束。支持期结束后,该版本将进入 EoS(支持终止)状态,仅通过 Qt 5.15 扩展安全维护(ESM)等附加服务提供支持。
了解有关Qt 5.15 标准支持终止和 ESM的更多信息。
现可通过浏览器直接体验 Qt 6,无需安装。只需浏览 try.qt.io 即刻探索!
期待 Qt for Python 更新?Qt for Python 6.9 也已发布!