我正在使用OpenGLScene作为openGL的包装器,我从the most simple example of that I've found on the internet开始。我刚从他们有拉链的链接中复制了所有内容。
我编译并运行程序,显然这个警告总是会出现(在defectground方法中):
if (painter->paintEngine()->type()
!= QPaintEngine::OpenGL) {
qWarning("OpenGLScene: drawBackground needs a "
"QGLWidget to be set as viewport on the "
"graphics view");
return;
有谁知道为什么(我在Mac上)?有没有人有更“稳定”的例子?这个警告是否相关?
基本上,我想知道为什么会出现这个警告,我怎么能摆脱它......
我真的不知道从哪里开始。我已经尝试了几个简单的事情(例如,使QGLWidget成为当前的Context),但我不知道Qt能够理解何时以及如何调用degraground方法。
答案 0 :(得分:0)
您有OpenGL
还是OpenGL2
?
试试此代码
if (painter->paintEngine()->type() != QPaintEngine::OpenGL
|| painter->paintEngine()->type() != QPaintEngine::OpenGL2)
答案 1 :(得分:0)
你想做什么?
IIRC qq26示例在4.7中没有用(未在4.8中测试过)。
但是在openGL场景之上覆盖了QWidgets被添加到4.8(http://qt-project.org/doc/qt-4.8/opengl-overpainting.html)而不是该示例中的hack
编辑:在Qt中使用opengl显示很简单,只需从QWidget派生并实现initializeGL,resizeGL和paintGL。有Qt函数来包装纹理,VBO,PBO和所有其他opengl的东西。请参阅发行版中的OpenGL examples。
答案 2 :(得分:0)
Qt中的Qt OpenGLScene工作示例
"Boxes"演示4.启动qtdemo,选择演示 - >框。或者全部阅读online。或者阅读overpainting,HelloGL或任何其他OpenGL example的文档。
我正在尝试使用Qt为OpenGL创建一个“包装器”。使用Qt作为GUI,使用OpenGL作为可视化
答案 3 :(得分:0)
我已经制作了small minimal OpenGL+Qt,我认为可以回答这一点:
我真的不知道从哪里开始。我尝试了几件简单的事情 (例如,将QGLWidget设置为当前上下文),但我不知道 足够Qt了解何时以及如何使用lossground方法 调用。
我认为这可以帮助那些在我提出这个问题时处于我所处位置的人。