Qt OpenGL
Qt 有两种主要的 UI 开发方法:Qt Quick 和 Qt 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. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。