0

我使用 OpenGLScene 作为 openGL 的包装器,我从网上找到的最简单的示例开始。我刚刚从他们有 zip 的链接中复制了所有内容。

我编译并运行程序,显然这个警告总是出现(在detailground方法中):

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 了解的不够多,无法理解何时以及如何调用 trackingground 方法。

4

4 回答 4

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 示例

于 2012-05-24T18:10:00.247 回答
0

Qt OpenGLScene 工作示例

Qt 4 中的“Boxes”演示。启动 qtdemo,选择 demo->boxes。或者全部在线阅读。或者阅读有关overpaintingHelloGL或任何其他OpenGL 示例的文档。

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

QGLWidget

于 2012-05-24T19:24:57.537 回答
0

你有OpenGLOpenGL2

试试这个代码

   if (painter->paintEngine()->type() != QPaintEngine::OpenGL
   || painter->paintEngine()->type() != QPaintEngine::OpenGL2)
于 2012-05-24T05:53:56.473 回答
0

我做了一个小的 OpenGL+Qt我认为可以回答这个问题:

我真的不知道从哪里开始。我已经尝试了几件简单的事情(例如,使 QGLWidget 成为当前 Context),但我对 Qt 了解的不够多,无法理解何时以及如何调用 trackingground 方法。

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

于 2012-09-23T07:49:39.580 回答