Qt5 - 配置 OpenGL 使用环境

Qt5 - 配置 OpenGL 使用环境

学习计算机图形学的过程中,需要使用 OpenGL 进行编程。下面介绍如何配置 Qt 下的 OpenGL 工程。

开发环境

  • Qt版本:5.10
  • 编译器:MSVC 2017
  • 操作系统:Windows 10

配置过程

  1. 首先新建一个 Widget 项目,命名为GL_Win

  2. 修改代码如下:

文件: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();
}

运行项目,结果如下

result

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值