首先Qt是一个非常强大的应用程序开发框架,它自己提供了OpenGL的模块,不需要配置环境即可直接使用~其次对GLSL也有支持,真的是非常厉害!!!
我们新建一个Qt项目,选择Qt Widgets Application

给项目起一个好玩的名字~

下一步->下一步->选择QWidget(因为我比较常用Widget,它没有QMainWindow的小刘海hhh)

然后完成~
我们接着呢,更改pro文件,加一句
QT += opengl
修改完pro文件,我们在.h文件中做下列修改:
引入三个比较常用的头文件,然后将Widget的父类改为QGLWidget

接着我们需要继承三个虚函数,分别用于初始化、绘制和窗口刷新的时候的重置函数

然后到.cpp文件中实现这三个函数,并修改构造函数所继承的父类名称
构造函数:
Widget::Widget(QWidget *parent) :
QGLWidget(parent),
ui(new Ui::Widget)
{ui->setupUi(this);
}
三个重要的函数:
void Widget::initializeGL()
{//设置widget的坐标和尺寸
setGeometry(300, 150, 500, 500);
//设置清除时颜色
glClearColor(0.0, 0.0, 0.0, 0);
}
void Widget::resizeGL(int w, int h)
{//视口变换
glViewport(0,0,(GLsizei)w,(GLsizei)h);
//投影变换
glMatrixMode(GL_PROJECTION);
glLoadIdentity();gluPerspective(40.0,(GLdouble)w/(GLdouble)h,0.1,10000.0);
//视图变换
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();gluLookAt(0.0,0.0,15.0,0.0,0.0,0.0,0.0,1.0,0.0);
}
void Widget::paintGL()
{//清屏
glClear(GL_COLOR_BUFFER_BIT);
//绘制七彩三角形
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0);
glVertex3f(-2,0,0);
glColor3f(0.0,1.0,0.0);
glVertex3f(2,0,0);
glColor3f(0.0,0.0,1.0);
glVertex3f(0,4,0);
glEnd(); glFlush();}代码中简单示例了一个好看的三角形的绘制~编译后就可以运行啦~~~
本文介绍如何在Qt中利用OpenGL进行绘图操作。通过创建一个Qt项目并配置OpenGL支持,实现了基本的三角形绘制。文章详细展示了从项目创建到OpenGL环境配置及绘图代码实现的全过程。
2323

被折叠的 条评论
为什么被折叠?



