RT: 怎么在QGLView中显示文字呢? 虽然QGLView是继承了QGLWidget, 但是QGLWidget中renderText()源码发现,renderText在QGLView中无法使用, 原因是它用的是opengl中的模形视图矩阵。只有禁用了QGLPainter才能显示出来。
解决方案:
要在QGLView类中渲染文字,不能直接使用其父类的renderText()方法。我写了一个QGLText类(代码我会放在qt-project论坛中或者我的QQ空间里),思路如下:
1. 利用正投影定位文字在窗口中的位置(正投影比透视投影更容易定位)。
2. 构造一个与文字大小一样的QImage (利用QFontMetrics),用于纹理中
3. 利用混合,透明QImage的背景色。(注:在Qt3D中,QImage设定为透明,仍然是黑色背景!)