Qt5 - 配置 OpenGL 使用环境
学习计算机图形学的过程中,需要使用 OpenGL 进行编程。下面介绍如何配置 Qt 下的 OpenGL 工程。
开发环境
- Qt版本:5.10
- 编译器:MSVC 2017
- 操作系统:Windows 10
配置过程
首先新建一个 Widget 项目,命名为
GL_Win
修改代码如下:
文件:gl_win.h
#ifndef GL_WIN_H
#define GL_WIN_H
// 添加头文件
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
namespace Ui {
class GL_Win;
}
// 修改继承的基类
class GL_Win : public QOpenGLWidget, protected QOpenGLFunctions {
Q_OBJECT
public:
explicit GL_Win(QWidget *parent = 0);
~GL_Win();
// 添加保护成员变量
protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
private:
Ui::GL_Win *ui;
};
#endif // GL_WIN_H
文件:gl_win.cpp
#include "gl_win.h"
#include "ui_gl_win.h"
// 定义窗口长宽和标题
#define WIN_WIGHT 800
#define WIN_HEIGHT 600
#define WIN_TITLE "画图测试"
// 修改构造函数如下
GL_Win::GL_Win(QWidget *parent) : QOpenGLWidget(parent), ui(new Ui::GL_Win) {
ui->setupUi(this);
// 设置窗口
setFixedSize(WIN_WIGHT, WIN_HEIGHT);
setWindowTitle(WIN_TITLE);
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
}
GL_Win::~GL_Win() {
delete ui;
}
void GL_Win::initializeGL() {
// 初始化函数
initializeOpenGLFunctions();
}
void GL_Win::resizeGL(int w, int h) {
// 窗口大小变化时 调整大小
glViewport(0, 0, w, h);
}
void GL_Win::paintGL() {
//清除之前图形并将背景设置为 blue
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
}
文件:main.cpp
#include "gl_win.h"
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
GL_Win w;
w.show();
return a.exec();
}