版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq78442761/article/details/87717560
目录
概念
最近在看Qt官方文档,发现QOpenGLWidget中可以使用paintEvent进行OpenGL的2D绘图,不需要任何OpenGL的知识,只需要简单的Qt的知识即可,对此自己写了一个小栗子记录下。
演示
程序运行截图如下:
程序结构如下:
源码如下:
glwidget.h
#ifndef GLWIDGET_H
#define GLWIDGET_H
#include <QOpenGLWidget>
class GLWidget : public QOpenGLWidget
{
Q_OBJECT
public:
GLWidget(QWidget *parent = Q_NULLPTR);
protected:
void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
};
#endif // GLWIDGET_H
glwidget.cpp
#include "glwidget.h"
#include <QPaintEvent>
#include <QPainter>
#include <QColor>
GLWidget::GLWidget(QWidget *parent)
: QOpenGLWidget(parent)
{
}
void GLWidget::paintEvent(QPaintEvent *e)
{
QPainter painter;
painter.begin(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.fillRect(e->rect(), QBrush(QColor(64, 55, 190)));
painter.setPen(QPen(QColor(Qt::white)));
QFont font;
font.setPixelSize(100);
painter.setFont(font);
painter.drawText(QRect(100, 100, 700, 200), Qt::AlignCenter, "CSDN IT1995");
painter.end();
}
main.cpp
#include <QApplication>
#include "glwidget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GLWidget w;
w.show();
return a.exec();
}