图形

跨平台应用程序可使用 Qt 显示图形元素。Qt 抽象了平台的底层图形应用程序接口,这样开发人员就可以专注于应用程序代码。

Qt 渲染硬件接口(RHI)可将 Qt 应用程序的 3D 图形调用转换为目标平台上的可用图形 API。

支持的图形应用程序接口有

  • OpenGL(2.1 及更高版本)
  • OpenGL ES(2.0 及更高版本)
  • Vulkan(1.0 及更高版本)
  • Direct3D 11(11.1 及更高版本)
  • Direct3D 12(12.0 及更高版本)
  • Metal(1.2 及更高版本)

应用程序中的图形Qt Quick

Qt Quick 应用程序中的图形使用场景图进行渲染。场景图渲染器可以创建高效的图形调用并提高性能。场景图具有可访问的 API,可让您灵活创建复杂但快速的图形。

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

选择渲染路径

Qt 尽可能使用目标平台的图形 API,但也可以使用特定 API 设置 Qt 的渲染路径。在许多情况下,选择特定的 API 可以提高性能,并允许开发人员在具有特定图形 API 的平台上进行部署。请访问 "通过 Qt 渲染硬件接口进行渲染"(Rendering via the Qt Rendering Hardware Interface)页面,了解如何在QQuickWindow 中设置渲染路径。

使用Qt Quick 3D 实现 3D 图形

Qt Quick 3D是一个插件,它提供了一个高级 API,用于创建基于 的 3D 内容和 3D 用户界面。它扩展了Qt QuickQt Quick 场景图,可让您在 2D 应用程序上实现 3D 内容。Qt Quick

着色器效果

QtXML Shader Tools 提供了一个工具 QSB,用于将顶点和片段着色器转化为Qt Quick 界面的软件包。尤其是ShaderEffect QML 类型和QSGMaterial 子类可以使用 QSB 的输出。 Qt Quick 3D有自己的框架,可将着色器导入 3D 场景。

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

高级图形Qt GUI

Qt GUIQPainter 提供了将矢量图形、文本和图像绘制到不同表面或QPaintDevice 实例(如QImage,QOpenGLPaintDevice,QWidgetQPrinter )上的 API。对于Qt Widgets 用户界面,Qt 使用软件渲染器。

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

低级图形与Qt GUI

Qt GUI提供了用于管理 OpenGL 上下文和 Vulkan 实例的跨平台使能程序。直接使用 OpenGL、OpenGL ES 或 Vulkan 进行渲染的应用程序可以使用QOpenGLContextQOpenGLFunctionsQVulkanInstanceQVulkanFunctionsQVulkanDeviceFunctions 来管理上下文和实例,并以可移植的方式访问 OpenGL 和 Vulkan API 函数。

Qt GUIQt XML 还提供了 Qt 渲染硬件接口(RHI)系列 API,如QRhiQShader ,供希望使用 Qt 本身用于实现Qt Quick 场景图和Qt Quick 3D 渲染引擎的可移植、跨平台 3D 渲染基础架构执行渲染的应用程序使用。这些类作为 "半公开 "API 提供,目前只有有限的兼容性承诺,与Qt 平台抽象类类似。不过,QRhi 类配有完整的文档。请参阅QRhi 类开始使用。

Qt GUI模块本身允许使用基于QRhi 的渲染来瞄准QWindow 或屏幕外缓冲区(如QRhiTexture )。对于基于QWidget 或 QML (Qt Quick) 的用户界面,使用由本地平台支持的QWindow 并不总是最方便的方法。这就是为什么 Qt Widgets模块提供QRhiWidget ,而Qt Quick 提供QQuickRhiItem 。通过这些基类,可以方便地创建QWidgetQQuickItem 子类,这些子类的实例可以将基于QRhi 的可移植渲染转化为纹理,然后自动与 Widgets 或Qt Quick 场景合成。

Qt OpenGL 模块

模块 Qt OpenGL模块用于需要访问 OpenGL 的应用程序。该模块是为了保持与 Qt XML 5 应用程序以及与Qt GUI 的兼容性。对于使用QWidget 的用户界面,QOpenGLWidget 是一个可以添加 OpenGL 场景的 widget。

打印

Qt 既支持直接打印到本地或网络上的实际打印机,也支持生成 PDF 输出。如何使用 Qt 进行打印的详细说明请参见 Qt Print Support页上有详细介绍。

图像

Qt XML 支持通过QImage 类方便地读取、写入和操作图像。此外,您还可以使用QImageReaderQImageWriter 类分别对图像的加载或保存方式进行更精细的控制。要在 Qt XML 提供的图像格式之外添加对其他图像格式的支持,可以使用QImageIOHandlerQImageIOPlugin 创建图像格式插件。

更多信息,请参阅读写图像文件页面。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.