Qt 公司发布了 Qt 6.11 框架,该框架延续了 Qt 6 分支的稳定性和功能扩展工作。Qt 6.11 为以下平台提供支持: Windows 10+, macOS 13 +, Linux (Ubuntu 2004年4月22日/24日,openSUSE 15.6/16,SUSE 15 SP6,RHEL 8.10/9.6/10, Debian 11.6/12),iOS 17+, Android Qt 6.11 支持 9+(API 23+)、webOS、WebAssembly、INTEGRITY、VxWorks、FreeRTOS 和 QNX。Qt 组件的源代码采用 LGPLv3 和 GPLv2 许可。Qt 6.10 被指定为次要版本,提供六个月的通用支持(商业用户可额外获得六个月的支持)。
Qt 6.11 的主要变化:
- 新增的 Qt Canvas Painter 模块提供了一个用于硬件加速渲染 2D 内容的 API,其设计基于 HTML Canvas 2D Context 规范。渲染采用 RHI(渲染硬件接口)引擎,该引擎支持多种 3D API(OpenGL、Vulkan、Metal 和 Direct3D),从而显著提升性能。测试表明,在典型的 Lenovo ThinkPad P16 Gen 2 笔记本电脑上,Qt Canvas Painter 的速度是使用 OpenGL 后端的 QPainter 的两倍;而在入门级机型上,速度更是快了五倍。 Android联想 Tab M10 HD 平板电脑,顶部设计比它好 10 倍 Android- 三星 Galaxy Tab S8 平板电脑。

除了高性能之外,Qt Canvas Painter 还支持高级功能,例如可配置的抗锯齿、边框渐变和阴影(类似于 CSS box-shadow 属性的 QCanvasBoxGradient 和 QCanvasBoxShadow)、网格图案(QCanvasGridPattern)、自定义着色器画笔以及用于更改透明度、亮度、对比度和饱和度的颜色效果。

- Qt Quick 3D 模块的功能现在更接近游戏引擎。新增了对 SSGI(屏幕空间全局光照)渲染技术的支持,用于在后期处理中模拟表面光反射(替代烘焙光照贴图),以及对 SSR(屏幕空间反射)的支持,用于实时渲染逼真的反射效果。通过为每个对象生成运动矢量,改进了运动对象的抗锯齿算法。实现了可配置的渲染通道,可以直接在 QML 中使用,用于图层蒙版、后期处理效果和颜色拾取。新增了图层和标签的 API,允许控制各个渲染通道、在渲染管线的不同阶段包含元素以及重定向到渲染目标缓冲区。

- Qt Graphs 模块的功能得到了扩展。新增了 CustomSeries 类型,允许您创建自定义图表,其中每个数据元素都由用户定义的委托负责绘制。3D 图表现在支持多个轴实例。例如,QBar3DSeries 支持行轴 (rowAxis)、值轴 (valueAxis) 和列轴 (columnAxis) 的独立轴,而 QScatter3DSeries 和 QSurface3DSeries 则支持 X 轴 (axisX)、Y 轴 (axisY) 和 Z 轴 (axisZ) 的独立轴。新增了用于覆盖各个轴的颜色、自定义图表渐变、更改线条样式和定位标签的属性。此外,还新增了一个创建自定义 2D 和 3D 图表的示例:风力涡轮机仪表盘。

- 实验性的 Qt TaskTree 模块已添加,它提供了一种声明式方法,用于在 C++ 中创建和执行异步任务。Qt TaskTree 的关键组件包括:“配方”(recipes)——描述异步工作流的可重用对象;“组”(groups)——定义子任务的策略;“存储”(storage)——用于在任务之间共享数据;以及“迭代器”(iterators)——用于循环和重新执行任务。Qt TaskTree 还通过将各种异步 API 统一到一个标准接口中,解决了 API 不兼容性问题。

- 扩展了对由 SVG 和 Lottie 图像生成的动画矢量图形的处理功能。Qt Quick VectorImage 模块和 lottietoqml 工具已稳定。新增了对变形动画、SVG 蒙版、SVG 符号和遮罩图层(用于控制其他图层的可见性)的支持。
- Qt Quick Controls 中新增了 DoubleSpinBox 组件。DialogButtonBox 现在允许控制默认按钮处理方式。RectangularShadow 效果现在支持独立控制圆角半径。
- 在 Qt Widgets 中,QWizard 有一个 StretchBanner 选项;QAbstractItemView 有一个 keyboardSearchFlags 参数,用于在按下按键时自定义搜索行为;QColumnView 有一个属性,用于控制预览可见性。
- 新增了 Qt OpenAPI 模块,该模块允许您使用基于 YAML 格式 OpenAPI 规范的 Qt Networks RESTful API 生成 HTTP 客户端代码。
- Qt GRPC 模块已更新,新增了用于管理请求和响应的流程和内容的机制。
- Qt HTTP 服务器模块扩展了限制管理工具,并改进了工作线程响应处理。QNetworkRequest 现在支持 TCP Keep Alive 设置(默认情况下,空闲连接会在 2 分钟后自动终止)。
- 用于集成到 IDE 的 QML 语言服务器现在包含有关 C++ 代码中 QML 类型定义位置的信息,从而简化了从 IDE 在 QML 和 C++ 之间切换的操作。在使用 C++ 代码时,您可以按 ID 查找 QML 对象,并轻松遍历 QML 上下文层次结构。
- 除了 QRangeModel 之外,还实现了 QRangeModelAdapter 类,提供了一个用于修改模型数据的 C++ API,通过 QAbstractItemModel 协议进行通信,从而可以轻松地将数据从 C++ 后端代码传递到 Qt Quick 或 Qt Widget。
- 添加了平台支持 Android 16. 实现了 Google Play 功能交付功能,将应用程序拆分为多个软件包(主软件包立即从 Google Play 安装,其他软件包根据需要下载)。 Android 汽车行业实现了对运行 Qt 的支持,无需 Android-用于快速启动渲染的依赖项。
此外,值得一提的是,最近发布的 Qt Creator 19 集成开发环境 (IDE)。它专为使用 Qt 库创建跨平台应用程序而设计。它既支持传统的 C++ 开发,也支持使用 QML。QML 使用 JavaScript 定义脚本,界面元素的结构和参数则由类似 CSS 的块定义。目前已提供可直接使用的版本。 Linux, Windows 以及 macOS。
新增功能包括迷你地图模式(首选项 > 文本编辑器 > 显示 > 启用迷你地图),该模式会在滚动条旁边显示整个内容的缩略图,方便用户快速浏览所有代码。此外,还内置了一个简单的 MCP 服务器,用于与 AI 助手集成,方便用户打开文件和项目、运行构建和调试。外部设备的构建设置也得到了简化——新增了“运行自动检测”按钮,可在注册设备后自动检测 Qt 版本、编译器、调试器和 CMake。同时,还实现了对已连接设备文件系统的直接访问。 Android-设备和模拟器。

来源: opennet.ru





