Qt OpenGL

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

可以在 Qt 中将使用 OpenGL 图形 API 编写的代码与这两种用户界面类型相结合。当应用程序具有自己的 OpenGL 相关代码,或者需要与第三方基于 OpenGL 的渲染器集成时,这可能会很有用。

Qt OpenGL 模块包含一些方便的类,以使此类集成更容易更快。

Qt OpenGL 和 Qt Widgets

Qt Widgets 通常由高度优化且精确的软件光栅化器渲染,并将最终内容以适用于应用程序运行平台的方法显示在屏幕上。

但是,也可以将 Qt Widgets 与 OpenGL 结合。此操作的主要入口点是 QOpenGLWidget 类。可以使用此类为小部件树中的特定部分启用 OpenGL 渲染,并且可以使用 Qt OpenGL 模块中的类来促进任何应用程序侧 OpenGL 代码。

Qt OpenGL 和 Qt Quick

Qt Quick 优化了硬件加速渲染。默认情况下,它将构建适合目标平台的最低级图形 API。

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

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

使用模块

使用 Qt 模块的 C++ API 需要链接到模块库,无论是直接还是通过其他依赖项。包括 CMake 和 qmake 在内的几个构建工具都为此提供了专用支持。

使用 CMake 构建

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

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

有关更多信息,请参阅 使用 CMake 构建 概述。

使用 qmake 构建

为了使用 qmake 构建配置模块,请将模块添加到项目 .pro 文件中 QT 变量的一个值

QT += opengl

示例

参考

模块演变

Qt OpenGL 的变化列出了为 Qt 6 系列Qt 实现的模块 API 和功能的重要更改。

许可和商标

Qt OpenGL 模块可以在 Qt 公司 的商业许可下使用。此外,它还可在免费软件许可下使用:GNU Lesser General Public License,版本 3,或GNU General Public License,版本 2。有关更多详细信息,请参阅Qt 许可

OpenGL® 是 Sillicn Graphics, Inc. 在美国和其他国家的商标。

© 2024 Qt 公司 Ltd. 本文档中所包含的贡献均为各自所有者的版权。本提供的文档遵守 Free Software Foundation 发布的 GNU Free Documentation License 版本 1.3 的条款。Qt 和 respective logos 是 The Qt Company Ltd. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。