QT中使用OpenGL function

1.前言

QT做界面编程很方便,QT+OpenGL的使用也很方便,因为QT对原生的OpenGL API进行了面向对象化的封装。

如:

cpp 复制代码
函数:initializeOpenGLFunctions()......
类:QOpenGLVertexArrayObject、QOpenGLBuffer、QOpenGLShaderProgram......
数学工具类:QVector3D、QMatrix4x4......

有些时候我们需要使用原生的OpenGL API,这在QT中也很方便,该怎么做呢?

2.内容

如果想在QT中使用原生的OpenGL API,如**glReadPixels** 、glShaderSource,需要参考QT官方文档说明:

QOpenGLFunctions Class | Qt GUI 6.8.1

继承类QOpenGLExtraFunctions,然后就可以使用上述原生API了,常用的用法是这样的,

cpp 复制代码
#include <QOpenGLWidget>
#include <QOpenGLFunctions_4_5_Core>
#include <QOpenGLShaderProgram>
#include <QOpenGLVertexArrayObject>
#include <QOpenGLBuffer>

//#include <AIS_InteractiveContext.hxx>

class QMenu;
class QRubberBand;

//! Adapted a QWidget for OpenCASCADE viewer.
class OccView : public QOpenGLWidget, QOpenGLFunctions_4_5_Core
{
   // implementation here

}
相关推荐
西西弗Sisyphus1 小时前
Qt 在无边框窗口上做一套换肤系统
开发语言·数据库·qt
西西弗Sisyphus1 小时前
Qt 启动 UsageStatistic 插件报错
开发语言·qt
神仙别闹1 小时前
基于 QT(C++)实现操作系统
数据库·c++·qt
不想看见4042 小时前
一次关于“鼠标是不是串口”的追问:从USB协议到CAN总线
c++·qt·计算机外设
VIP_CQCRE3 小时前
一行配置接入 OpenAI 兼容语音识别:Ace Data Cloud Transcriptions API 实战
openai·api·语音识别·ai应用·acedatacloud
西西弗Sisyphus3 小时前
Qt 配置文件图标和文件版本信息
开发语言·qt
秋田君3 小时前
Qt_Qt(c++)开发中常见错误与解决方法
开发语言·c++·qt
西西弗Sisyphus4 小时前
Qt 无边框窗口自己实现拖拽与缩放
开发语言·qt
狮子雨恋4 小时前
anaconda python环境和QT python环境不一致如何解决
开发语言·python·qt
Lhan.zzZ19 小时前
QML 组件库:VS2022 + Qt 静态库方案
开发语言·c++·qt·visual studio