现代OpenGL+QT窗口创建
类.h
1 #include <QObject> 2 #include <QOpenGLWidget> 3 #include <QOpenGLFunctions> 4 class OpenglManager : public QOpenGLWidget, protected QOpenGLFunctions 5 { 6 public: 7 explicit OpenglManager(QWidget *parent = 0); 8 ~OpenglManager(); 9 10 protected: 11 void initializeGL() override; //窗口创建初始化 12 void resizeGL(int w, int h) override; //窗口大小调整 13 void paintGL() override; //重绘 14 15 };
类.cpp
#include "openglmanager.h" OpenglManager::OpenglManager(QWidget *parent) : QOpenGLWidget(parent) { } OpenglManager::~OpenglManager() { } void OpenglManager::initializeGL() { /*********** OGL核心 ***********/ initializeOpenGLFunctions(); glEnable(GL_DEPTH_TEST); } void OpenglManager::resizeGL(int w, int h) { glViewport(0, 0, w, h); } void OpenglManager::paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(0.2f, 0.3f, 0.3f, 1.0f); }
在Qt的UI设计界面,使用widget提升该类

浙公网安备 33010602011771号