Qt OpenGL

Qt 有 2 种主要 UI 开发方式: Qt Quick and Qt Widgets . They exist to support different types of user interfaces, and build on separate graphics engines that have been optimized for each of these types.

It is possible to combine code written in the OpenGL graphics API with both of these user interface types in Qt. This can be useful when the application has its own OpenGL-dependent code, or when it is integrating with a third-party OpenGL-based renderer.

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 模块的 C++ API 要求直接 (或透过其它依赖) 链接到模块库。几个构建工具对此有专用支持,包括 CMake and qmake .

构建采用 CMake

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

find_package(Qt6 REQUIRED COMPONENTS OpenGL)
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 (硅谷) 图形公司在美国及其它国家的商标。