c – 如何使用QOpenGLWidget渲染文本

c – 如何使用QOpenGLWidget渲染文本,第1张

概述在旧版本的Qt中有 QGLWidget,有一个很好的函数叫做 renderText.现在我使用 QOpenGLWidget类,并且缺少渲染文本的功能. 有没有简单的方式来渲染文本使用QOpenGLWidget?我不想从头开始用OpenGL构建整个文本渲染 我最终做了一个类似于@jaba写的解决方案.我也注意到一些图形损坏,除非我在方法的结尾调用了painter.end(). void MapCan 在旧版本的Qt中有 QGLWidget,有一个很好的函数叫做 renderText.现在我使用 QOpenGLWidget类,并且缺少渲染文本的功能.

有没有简单的方式来渲染文本使用qopenglwidget?我不想从头开始用OpenGL构建整个文本渲染

解决方法 我最终做了一个类似于@jaba写的解决方案.我也注意到一些图形损坏,除非我在方法的结尾调用了painter.end().
voID MapCanvas::renderText(double x,double y,double z,const QString &str,const QFont & Font = QFont()) {    // IDentify x and y locations to render text within Widget    int height = this->height();    GLdouble textPosX = 0,textPosY = 0,textPosZ = 0;    project(x,y,0f,&textPosX,&textPosY,&textPosZ);    textPosY = height - textPosY; // y is inverted    // RetrIEve last OpenGL color to use as a Font color    GLdouble glcolor[4];    glGetDoublev(GL_CURRENT_color,glcolor);    Qcolor Fontcolor = Qcolor(glcolor[0],glcolor[1],glcolor[2],glcolor[3]);    // Render text    QPainter painter(this);    painter.setPen(Fontcolor);    painter.setFont(Font);    painter.drawText(textPosX,textPosY,text);    painter.end();}
总结

以上是内存溢出为你收集整理的c – 如何使用QOpenGLWidget渲染文本全部内容,希望文章能够帮你解决c – 如何使用QOpenGLWidget渲染文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1247762.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存