• 5134阅读
  • 1回复

[提问][已解决]Qt3D显示文字 [复制链接]

上一主题 下一主题
离线xlttap
 

只看楼主 倒序阅读 楼主  发表于: 2012-09-19
RT: 怎么在QGLView中显示文字呢? 虽然QGLView是继承了QGLWidget, 但是QGLWidget中renderText()源码发现,renderText在QGLView中无法使用, 原因是它用的是opengl中的模形视图矩阵。只有禁用了QGLPainter才能显示出来。

解决方案:
要在QGLView类中渲染文字,不能直接使用其父类的renderText()方法。我写了一个QGLText类(代码我会放在qt-project论坛中或者我的QQ空间里),思路如下:
1. 利用正投影定位文字在窗口中的位置(正投影比透视投影更容易定位)。
2. 构造一个与文字大小一样的QImage (利用QFontMetrics),用于纹理中
3. 利用混合,透明QImage的背景色。(注:在Qt3D中,QImage设定为透明,仍然是黑色背景!)
我简单我快乐
离线xlttap

只看该作者 1楼 发表于: 2012-09-28
完美解决QT3D渲染文字。 哈哈。。。
我简单我快乐
快速回复
限100 字节
 
上一个 下一个