如何使用Horde3d和OpenGL绘制Qt小部件?

如何使用Horde3d和OpenGL绘制Qt小部件?,qt,qt4,qgraphicsview,qgraphicsscene,qglwidget,Qt,Qt4,Qgraphicsview,Qgraphicsscene,Qglwidget,我想要的是一个Qt应用程序,它使用Horde3D显示3d场景,并使用Horde3D(或OpenGL)在3d场景的顶部绘制QWidgets 基本上我想为我的3D场景添加UI。这个UI应该使用OpenGL绘制 我已经成功地学习了本教程:,还有本教程 但是当我尝试组合它们时,我可以看到我的3D场景,但没有UI控件。我在Horde3d中使用QGraphicsView、QGraphicscene和QGLWidget。如果我不使用Horde3D(我的意思是不要初始化它),那么我的UI控件将正确呈现 我面临同

我想要的是一个Qt应用程序,它使用Horde3D显示3d场景,并使用Horde3D(或OpenGL)在3d场景的顶部绘制QWidgets

基本上我想为我的3D场景添加UI。这个UI应该使用OpenGL绘制

我已经成功地学习了本教程:,还有本教程

但是当我尝试组合它们时,我可以看到我的3D场景,但没有UI控件。我在Horde3d中使用QGraphicsView、QGraphicscene和QGLWidget。如果我不使用Horde3D(我的意思是不要初始化它),那么我的UI控件将正确呈现

我面临同样的问题


如何解决此问题?

使用drawBrackground()绘制要使用Horde3D执行OpenGL渲染,最重要的一点是必须保留GL状态,请确保在渲染Horde3D场景之前保存GL状态并在渲染之后恢复。

使用drawBrackground()绘制时最重要的一点要使用Horde3D执行OpenGL渲染,必须保留GL状态,请确保在渲染Horde3D场景之前保存GL状态并在渲染之后恢复。

当我忘记在Qt渲染之前重置OpenGL状态时,我会遇到Qt UI消失的问题。顺便提一句,我真的应该提到这一点。要使它们在OpenGL支持的场景中很好地工作,并正确地处理输入是非常困难的。相信我,我已经试过了。Qt UI消失是我在Qt渲染之前忘记重置OpenGL状态时遇到的问题。顺便说一下,我真的应该提到这一点。要使它们在OpenGL支持的场景中很好地工作,并正确地处理输入是非常困难的。相信我,我已经试过了。