如何在QT-VS2013 中使用自带的OpenGL 绘制一个简单的图形

1.在QT创建工程的时候,一定要勾选如下OpenGl选项
在这里插入图片描述
2.先创建一个关于绘制OpenGl图像的类,在类中绘制一个三角形

#ifndef QOPENGLWIDGET_TEST_H
#define QOPENGLWIDGET_TEST_H
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
class OpenGLTest : public QOpenGLWidget, protected QOpenGLFunctions
{
	Q_OBJECT
public:
	OpenGLTest(QWidget *parent);
	~OpenGLTest();
	
	void initializeGL();
	void resizeGL(int width, int height);
	void paintGL();
};

#endif // MY_QOPENGLWIDGET_H
#include "OpenGlTest.h"
OpenGLTest::OpenGLTest(QWidget *parent)
	: QOpenGLWidget(parent)
{
	// 设置OpenGL的版本信息
	QSurfaceFormat format;
	format.setRenderableType(QSurfaceFormat::OpenGL);
	format.setProfile(QSurfaceFormat::CoreProfile);
	//format.setVersion(3, 3); //放开可能显示不了图像了。
	setFormat(format);
}

OpenGLTest::~OpenGLTest()
{
}
void OpenGLTest::initializeGL() {
	initializeOpenGLFunctions();
	//glShadeModel(GL_SMOOTH);//设置阴影平滑模式
	glClearColor(0.98, 0.625, 0.12, 0.5);//改变窗口的背景颜色
	glClearDepth(1.0);//设置深度缓存
	glEnable(GL_DEPTH_TEST);//允许深度测试
	glDepthFunc(GL_LEQUAL);//设置深度测试类型
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);//进行透视校正
}
void OpenGLTest::paintGL() {
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glColor3f(0.0, 0.0, 1.0);
	glBegin(GL_TRIANGLES);
	glVertex3f(0.0, 1.0, 0.0);
	glVertex3f(-1.0, -1.0, 0.0);
	glVertex3f(1.0, -1.0, 0.0);
	glEnd();
}

void OpenGLTest::resizeGL(int w, int h) {
	glViewport(0, 0, w, h);
}
#include "test.h"
int main(int argc, char *argv[])
{
	//QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
	QApplication a(argc, argv);
	test w;
	w.show();
	return a.exec();
}
#pragma once
#include "ui_test.h"
class test : public QMainWindow
{
	Q_OBJECT
public:
	test(QWidget *parent = Q_NULLPTR);
private:
	Ui::test ui;
};
#include "test.h"
test::test(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
}

3.拖一个OpenGl的控件放置自己的界面上,右击控件,选择提升为上面创建的类,这里默认展示的头文件默认都为小写

在这里插入图片描述
4.运行结果
在这里插入图片描述
资源下载:https://download.csdn.net/download/weixin_41383353/14808677 点击这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值