关于QOpenGLWidget上显示文本的方法

这是笔者在BBS上的一篇文章,现转载到这里

本文是笔者关于QOpenGLWidget显示文本的笔记。方法在网上都可以找到。不当之处欢迎指正!
类别一、显示2D文本

该方式为将文本内容显示在QOpenGLWidget上,不随视角变化。
应用:3D场景的图例或内容描述。
优点:相对于在其他部位显示优点是截图时带着文本内容。
缺点:QPainter内容不被消隐,不适合显示面片信息
方法:在OpenGL中混合QPainter命令。这部分教程比较多,可以在网上搜。
类别二、显示3D文本

该方式为将文本内容显示在QOpenGLWidget中的面片上,需要随视角变化,支持消隐。
图片方式

用QPainter 将显示的字符串写在QImage上,背景透明。然后将QImage当做材质贴在一个多边形上。
优点:文本美观,支持各种字体。
缺点:1.多边形边界的计算比较麻烦,影响贴图质量。
2.生成的图片文件不能太大,否则申请数组会出问题。

QImage* COPenGLText::Text2Image(GLuint ID)
{
   
   
QSize size(m_width32/m_height,32 ); // m_width,m_height 字符串宽高要先算好,生成高为32点的图片
QImage imgDraw = new QImage(size, QImage::Format_ARGB32);
imgDraw->fill(Qt::transparent);
QPainter* painter = new QPainter(imgDraw);
pain
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

imz2y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值