Qt OpenGL

Qt 有 2 种主要 UI 开发方式: Qt Quick and Qt Widgets 。它们的存在是为支持不同类型的用户界面,并单独构建针对每种类型有优化的图形引擎。

组合以 OpenGL 图形 API 编写的代码与这 2 种 Qt 用户界面类型,是可能的。这很有用,当应用程序拥有自己的 OpenGL 从属代码时 (或集成基于 OpenGL 的第 3 方渲染器时)。

Qt OpenGL 模块包含使这种类型的集成变得更容易和更快的方便类。

Qt OpenGL 和 Qt Widgets

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

但是,也可以组合 Qt Widgets 与 OpenGL。这的主要入口点是 QOpenGLWidget 类。此类用于为 Widget 树的特定部分启用 OpenGL 渲染,且 Qt OpenGL 模块中的类可用于促进任何应用程序侧的 OpenGL 代码。

Qt OpenGL 和 Qt Quick

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

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

有关启用 OpenGL 的更多细节采用 Qt Quick ,见 场景图形渲染器文档编制 .

概述

使用模块

使用 Qt 模块要求直接或透过其它依赖链接到模块库。一些构建工具为此有贡献支持,包括 CMake and qmake .

构建采用 CMake

使用 find_package() 命令去定位所需模块组件,在 Qt6 包:

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

另请参阅 构建采用 CMake 概述。

采用 qmake 构建

要配置采用 qmake 构建模块,添加模块作为值为 QT 变量在工程的 .pro 文件:

QT += opengl
					

模块演变

Qt OpenGL 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能上所做出的重要改变。

许可和商标

Qt OpenGL 模块在商业许可下是可用的来自 Qt 公司 。此外,它在自由软件许可下也是可用的: GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。

OpenGL ® 是 Silicon (硅谷) 图形公司在美国及其它国家的商标。

这些是指向 API 参考资料和相关页面的链接。