QOPenGLWidget与QPainter混合编程--绘制文本
2016-12-22 16:45
309 查看
前言:QOPenGLWidget取代了之前的QGLWidget类,用以在Qt中提供Opengl的编程接口。在QGLWidget类中,我们可以通过方法drawTexture来绘制文本。但是在QOPenGLWidget类的时候,这个方法没有提供了。官方文档给出的建议是混合QPainter使用。本文档就是介绍怎么用QPainter来在OPengl窗口上绘制2D文本
效果就如下图
![](http://img.blog.csdn.net/20161222164143800?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHBfaHVhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
其他的,相信大家都看得懂,但是我要强调的是,一定要
当然在绘制完成后,要
如果没有做上面的工作,会有如下效果
Qt使用QOpenglWidget
构建一个子类,然后重载三个函数就行,这里不展开说,官方文档上说的很详细。我们绘制事件不需要用paintEvent,而是直接在paintGL方法中添加如下代码。//此处省略很多代码// ... glDisable(GL_DEPTH_TEST); QPainter painter; painter.begin(this); QPen pen; pen.setColor(Qt::red); painter.setPen(pen); painter.drawText(100,100,"helloworld"); painter.end(); glEnable(GL_DEPTH_TEST);
效果就如下图
其他的,相信大家都看得懂,但是我要强调的是,一定要
glDisable(GL_DEPTH_TEST);//关闭更新深度缓冲区,更多资料可以查深度缓冲区
当然在绘制完成后,要
glEnable(GL_DEPTH_TEST);
如果没有做上面的工作,会有如下效果
相关文章推荐
- QOpenGLWidget + QPainter混合编程
- 利用GLUT实现在OpenGL中绘制文本的简单方法
- OpenGL(一)二维图形的绘制:图元、多边形、颜色插值、文本、查询与错误、状态的保存
- 利用GLUT实现在OpenGL中绘制文本的简单方法
- OpenGL绘制文本
- Part3:Drawing Text /用OpenGL 绘制文本
- QOpenGLWidget绘制2D的方法
- Qpainter绘制文本
- QT QPainter 绘制任意角度的文本
- QPainter绘制文本 二
- QOpenGLWindow 、QOpenGLWidget 和 QPainter混合渲染方法初探
- 在Qt5.4中如何实现QOpenGLWidget和QPainter混合编程
- openGL 绘制文本font(csGL)
- OpenGL入门学习之十五——从“绘制一个立方体”来看OpenGL的进化过程
- QT5 OpenGL (四, 绘制立体图形)
- OpenGL点阵字体绘制终极解决方案
- OpenGL学习10_绘制行星系统
- Canvas的drawText绘制文本不自动换行的解决
- OpenGL绘制一个矩形,并在窗口大小改变时保持它的形状
- OpenGL三角形的双面不同颜色的绘制