图形

跨平台应用程序可以使用 Qt 以显示图形元素。Qt 抽象了平台底层图形 API,以便开发者可以聚焦于应用程序代码。

Qt RHI (渲染硬件接口) 将来自 Qt 应用程序的 3D 图形调用,翻译成目标平台上的可用图形 API。

支持的图形 API:

  • OpenGL (第 3 版及更高版本)
  • OpenGL ES (第 2 版及更高版本)
  • Vulkan (1.0 及更高版本)
  • Direct3D 11 (11.1 及更高版本)
  • Metal

Qt Quick 中的图形

Qt Quick 应用程序使用 场景图形 为渲染。场景图形渲染器可以创建有效图形调用并提高性能。场景图形拥有可访问 API,给予创建复杂且快速图形的灵活性。

以下列表的页面包含渲染 Qt Quick 应用程序的更多有关信息。

Qt Quick 也可以渲染使用 Qt Quick 2D Renderer 。此光栅描绘引擎在没有 OpenGL 的平台渲染 Qt Quick 应用程序。

选取渲染路径

Qt 尽可能使用目标平台的图形 API,不管怎样,采用特定 API 设置 Qt 的渲染路径是可能的。在许多情况下,选择特定 API 可以提高性能,且允许开发者在具有特定图形 API 的平台上部署。拜访 凭借 Qt 渲染硬件接口进行渲染 页面关于如何设置渲染路径在 QQuickWindow .

采用 Qt Quick 3D 的 3D 图形

Qt Quick 3D 是提供高级 API (用于基于 Qt Quick 创建 3D 内容和 3D 用户界面) 的插件。它扩展了 Qt Quick 场景图形 ,它使您可以在 2D Qt Quick 应用程序中实现 3D 内容。

着色器效果

Qt Shader Tools 提供工具, QSB ,以将顶点和片段着色器翻译成 Qt Quick 接口包。尤其, ShaderEffect QML 类型和 QSGMaterial 子类可以使用 QSB 的输出。 Qt Quick 3D 有它自己的框架,用于将着色器导入 3D 场景。

以下列表包含着色器效果的有关信息。

采用 Qt GUI 的高级图形

Qt GUI 提供高级窗口、描绘和排印系统。 QPainter 提供将向量图形、文本及图像绘制到不同表面的 API,或 QPaintDevice 实例,譬如 QImage , QOpenGLPaintDevice , QWidget ,和 QPrinter 。对于 Qt Widgets 用户界面,Qt 使用软件渲染器。

以下列表包含 Qt GUI 高级绘制 API 的有关信息。

Qt OpenGL 模块

Qt OpenGL 模块用于要求访问 OpenGL 的应用程序。此模块用于保持兼容 Qt 5 应用程序和 Qt GUI。若用户界面使用 QWidget , QOpenGLWidget 是可以添加 OpenGL 场景的小部件。

打印

Qt 支持直接打印到本地或网络的实际打印机,及产生 PDF 输出。如何采用 Qt 进行打印的详细描述在 Qt Print Support 页面。

图像

Qt 支持图像的方便读取、写入及操纵透过 QImage 类。此外,对于如何更细粒度控制图像的加载或保存,可以使用 QImageReader and QImageWriter 类。为添加由 Qt 所提供的其它图像格式的支持,可以创建图像格式插件通过使用 QImageIOHandler and QImageIOPlugin .

读取和写入图像文件 页面,了解更多信息。