Qt OpenGLScene工作示例

时间:2012-05-24 05:28:11

标签: qt opengl

我正在使用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方法。

4 个答案:

答案 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 OpenGLScene工作示例

Qt中的

"Boxes"演示4.启动qtdemo,选择演示 - >框。或者全部阅读online。或者阅读overpaintingHelloGL或任何其他OpenGL example的文档。

  

我正在尝试使用Qt为OpenGL创建一个“包装器”。使用Qt作为GUI,使用OpenGL作为可视化

QGLWidget

答案 3 :(得分:0)

我已经制作了small minimal OpenGL+Qt,我认为可以回答这一点:

  

我真的不知道从哪里开始。我尝试了几件简单的事情   (例如,将QGLWidget设置为当前上下文),但我不知道   足够Qt了解何时以及如何使用lossground方法   调用。

我认为这可以帮助那些在我提出这个问题时处于我所处位置的人。