LINUX环境下Qt5.9+OpenGL绘图之创建窗口(一)

 

  1. QT创建一个新项目,选择默认Widget作为类名,以QWidget作为基类
  2. 修改pro文件,加入QT += opengl
  3. 修改.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include <QOpenGLExtraFunctions>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QOpenGLWidget,protected QOpenGLFunctions
{
Q_OBJECT

public:
Widget(QWidget *parent = nullptr);
~Widget();

protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
void keyPressEvent(QKeyEvent *e);

private:
Ui::Widget *ui;
};

#endif // WIDGET_H

  1. 修改.cpp文件
    #include “widget.h”
    #include <QDebug>
    #include <QKeyEvent>

Widget::Widget(QWidget *parent)
: QOpenGLWidget(parent)

{
resize(800,600);
setWindowTitle(“A goose’s OpenGL Framework”);
}

Widget::~Widget()
{

}

5.编写.cpp之中的函数
void Widget::initializeGL()
{
this->initializeOpenGLFunctions();
}

void Widget::resizeGL(int w, int h)
{
glViewport(0, 0, w, h);
qDebug()<<“wh”<<w<<h;
}

void Widget::paintGL()
{
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
}

void Widget::keyPressEvent(QKeyEvent *e)
{
switch(e->key())
{
case Qt::Key_Escape:
close();
break;
}
}

 

posted @ 2023-08-24 13:30  铁木2023  阅读(221)  评论(0)    收藏  举报