Qt公司正式宣布了他们的第一个主要新版本Qt 6的发布。它标志着Qt的一个重要里程碑和向现代图形堆栈的巨大飞跃。

Qt是用于桌面、嵌入式和移动设备的跨平台应用程序开发框架。这么多年来,Qt 5取得了巨大的成功。它是在8年前的2012年发行的。

Qt支持许多平台,包括Linux、OS X、Windows、VxWorks、QNX、Android、iOS、黑莓、Sailfish OS等等。该框架是用C++编写的,使用MOC(元对象编译器)作为预处理器,用于扩展信号和槽等语言特性。

Qt 6有什么新特性?

让我们来看看Qt 6的新功能。

C++ 17

Qt 6现在需要一个兼容C++ 17的编译器来支持现代C++语言构造的使用,这将有助于在API端进行集成。

核心库和API

Qt Core进行了许多更改。Qt Core模块实现了框架的最核心部分。一些重要的变化是:

  • Qt 6增加了新的属性和绑定系统。它带来了绑定的概念,使得QML在Qt 5中获得了巨大的成功。
  • Qt 6现在是完全的Unicode,他们从Qt 5开始就瞄准了这个目标。
  • QList和QVector在Qt 6中统一为一个类。QList是Qt 5中的一个类,由于它用于堆分配对象和对hep分配方法施加压力,因此经常受到批评。
  • QMetaType和QVariant已在Qt 6中进行了完全重写。
  • Qt Concurrent得到了一个几乎完整的重写。因此,在Qt 6中开发多线程应用程序比以往任何时候都更加轻松。

新的图形架构


Qt 6中的渲染保真度改进| 图片来源Qt

  • Qt 5的图形体系结构主要取决于OpenGL。现在,Qt 6具有大量不同的图形API,包括Vulkan和Metal。
  • Qt Quick的3D图形现在建立在称为RHI(渲染硬件接口)的新抽象层之上。RHI使用基础OS/平台的原生3D图形API。因此,Qt Quick现在将在Windows上使用Direct3D,在macOS上使用Metal,在Linux上使用OpenGL/Vulkan。
  • Qt 6添加了一个名为QtShaderTools的新模块,以处理不同图形API之间的不同着色语言。

Qt Quick 3D和Qt 3D

Qt 6启用了2D和3D图形项目之间的无缝集成。现在,您可以将2D项目放置到3D场景中。最重要的是,两个都在使用RHI。

Qt Quick的原生桌面样式

Qt 5在Qt Quick中不支持桌面样式,但在Qt 6中它支持macOS和Windows上像素完美的原生外观。

构建系统和包

Qt 6现在是使用CMake构建的。以前,qmake是构建Qt项目的首选。现在相反,在Qt 6的生命周期中,首选使用CMake,而支持qmake。

Qt 6现在带有一个更小的默认软件包,许多附加组件通过软件包管理器作为单独的软件包分发。这将帮助用户获得更清洁的开发环境,并且开发人员将能够更频繁地发布功能。

HiDPI支持

Qt 6现在支持分形缩放,从而可以针对不同的监视器配置自动进行UI缩放。

改进的网络功能

现在,您可以创建自己的协议后端并将其集成到Qt工作流程中。与安全相关的功能也会在Qt 6中自动添加。

Qt微控制器(MCU)

Qt 6现在支持轻量级渲染引擎,可在具有2D硬件加速功能的低成本硬件上部署基于QML的UI。它将以最小的占用空间(> 80 kB RAM)实现最佳图形性能。

Qt 5的模块很少,尚未移植到Qt6。QtMultimedia,Qt Bluetooth和Qt Virtual Keyboard等模块以及许多其他模块都将在Qt 6.1、6.2或更高版本中移植。Qt公司明确承认Qt 6.0的功能不完整,如Qt 5.15。

下载Qt 6

您还可以期望在圣诞节之前发布新版本的Qt Creator和Qt Design Studio!他们将全面支持Qt 6。

您可以从他们的网站下载Qt 6的新版本。

Qt 6已朝着现代图形体系结构发展,我认为这是必要且适时的。你是怎么看?

发表评论