Qt OpenGL

Qt 有两种主要的 UI 开发方法: Qt QuickQt Widgets.它们的存在是为了支持不同类型的用户界面,并建立在针对这些类型分别进行了优化的独立图形引擎之上。

在 Qt 中,可以将用 OpenGL 图形 API 编写的代码与这两种用户界面类型结合起来。当应用程序拥有自己的 OpenGL 依赖性代码,或与第三方基于 OpenGL 的渲染器集成时,这将非常有用。

Qt OpenGL 模块包含一些方便的类,使这种类型的集成更容易、更快速。

Qt OpenGLQt Widgets

Qt Widgets通常由高度优化和精确的软件光栅器进行渲染,并使用适合应用程序运行平台的方法在屏幕上再现最终内容。

但也可以将 Qt Widgets与 OpenGL 相结合。其主要入口是QOpenGLWidget 类。该类可用于为部件树的某一部分启用 OpenGL 渲染,而Qt OpenGL 模块中的类可用于促进任何应用程序端的 OpenGL 代码。

Qt OpenGLQt Quick

Qt Quick针对硬件加速渲染进行了优化。默认情况下,它将基于最适合目标平台的底层图形 API 构建。

例如,在 Windows 上默认为Direct3D ,而在 macOS 上默认为Metal 。但也可以在支持 OpenGL 的平台上手动选择 OpenGL 作为活动图形 API。

有关使用 Qt Quick启用OpenGL 的详细信息,请参阅场景图渲染器文档

使用模块

使用 Qt 模块的 C++ API 需要直接或通过其他依赖项链接模块库。有几种构建工具为此提供了专门支持,包括CMakeqmake

使用 CMake 构建

使用find_package() 命令在Qt6 软件包中找到所需的模块组件:

find_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)

更多详情,请参阅使用 CMake 构建概述。

使用 qmake 构建

要配置使用 qmake 构建的模块,请在项目的 .pro 文件中添加模块作为QT 变量的值:

QT += opengl

示例

参考

模块演变

Changes toQt OpenGL列出了 Qt 6 系列 Qt 在模块 API 和功能方面的重要变化。

许可证和商标

Qt OpenGL 模块可在Qt Company 的商业许可下使用。此外,它还受自由软件许可证的保护:GNU 宽通用公共许可证第 3 版GNU 通用公共许可证第 2 版。更多详情,请参阅Qt 许可

OpenGL®是 Silicon Graphics 公司在美国和其他国家的商标。

© 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.