问题标签 [qglwidget]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
12602 浏览

qt - 使用自定义 QGLWidget 调用 Qt 的 QGraphicsView::setViewport

我以前从 QGLWidget 派生,如下所示:

但是,我发现如果我尝试使用我的自定义 QGLWidget 作为视口来初始化 QGraphicsView,则不会调用 initializeGL(在 Qt 库中设置断点,QGLWidget::initializeGL() 在创建时也不会被调用)。

放置当前驻留在 MyGLWidget::initializeGL() 中的代码的正确位置在哪里?

0 投票
2 回答
1754 浏览

c++ - 求Qt4中使用QGLWidget的建议

我是新来的,有一个关于 Qt4 中 opengl 的问题,我在过去几个月里一直在学习。

特别是,我正在寻求有关使用 QGLWidget 以良好的面向对象方式组成场景的最佳方式的建议。理想情况下,我希望场景中的每个项目都是超级“实体”类的子类。然后在我的主 QGLWidget 中,我可以对实体进行排序并相应地呈现它们。

我注意到虽然需要从 QGLWidget(或小部件的 QGLContext)调用某些 openGL 函数(如 bindTexture)。目前,我正在传递一个指向 QGLWidget 的指针,该指针控制每个实体的主视口并将其存储,以便我可以访问这些函数。这是一个好主意吗?

我们将不胜感激地收到任何建议,甚至是对可能有帮助的好网站/书籍的指导。我有 Blanchette/Summerfield 的书,但是 OpenGL 部分很短,而且 Qt 网站上的大多数示例都非常简单。

谢谢,丹

0 投票
1 回答
1833 浏览

qt - 如何使用 QGLWidget 显示弹出菜单?

右键单击 QGLWidget 时如何显示上下文菜单?

0 投票
1 回答
2831 浏览

c++ - 2d HUD 未在 QGLWidget 上正确绘制(使用 QPainter)

我正在尝试在我的 3D 游戏上显示 HUD。对于初学者,我只是想显示“Hello World”,但我还没有成功!一旦我完成,场景就会冻结/闪烁。

我正在使用 Qt/C++ 和 QGLWdiget / QPainter 来完成这项工作。我已使用重绘示例作为开始的参考。这是我所做的:

  • 在我自己的子类 GameGL 类( GameGL : public QGLWidget )中覆盖paintEvent(...)
  • 将 openGL ModelView 矩阵推送为当前矩阵
  • 启用参数作为 gl_depth_test
  • 渲染我的游戏(::paintGL1())
  • 禁用模型视图参数
  • 弹出模型视图矩阵

  • 制作 QPainter 对象

  • 调用paint.drawText()
  • 使用paint.end() 刷新

这与示例中提到的几乎相同。但是,当我运行此代码时,它会出现冻结/闪烁并且高度无响应。有人知道为什么会发生这种情况吗?我真的很感激任何帮助。


代码:makeCurrent(); glMatrixMode(GL_MODELVIEW); glPushMatrix();


谢谢

0 投票
1 回答
2837 浏览

qt - 如何在 QT OpenGL Widget 上使用 OpenGL 函数?

我从 QT 4.6 的示例“OpenGL - 2D 绘画”开始
,它使用 QGLWidget 的子类,并使用 QPainter 类进行绘画操作。
我想知道如何在 OpenGL Widget 上直接使用 OpenGL 函数进行绘图。

0 投票
2 回答
7845 浏览

qt - QGLWidget 和硬件加速?

大家好,

简单地继承 QGLWidget 并重新实现 paintEvent() 是否使用 OpenGL 和硬件加速?我创建了一个 QPainter 并在这个 paintEvent() 中绘制 QImages。

QGLWidget 的paintEvent() 方法内部发生了什么?它是否将图像(QImage,QPixmap)转换为 OpenGL 纹理?

它是否使用硬件加速来进行图像缩放?

在此先感谢,

0 投票
1 回答
790 浏览

qt - QGlWidget 全屏无菜单

我有一个应用程序,它是一个单一的 QGlwidget,需要时创建一个右键单击 QMenu。
数据在被覆盖的paintEvent() 中绘制

但在全屏模式下,菜单不显示。我是否更好地将 QGraphicsScene 作为父窗口并将 QGlWidget 作为唯一的孩子?

0 投票
1 回答
732 浏览

macos - QtOpenGL 和 MacOS X——软件渲染?

我正在开发一个跨平台的应用程序,对 Mac 平台不是很熟悉。我将 Qt 用于 GUI。我使用 QGLWidget 来确保绘图(使用 QPainter)是在 OpenGL 中完成的。

我的项目在 XCode 中构建良好并运行。然而,在 Windows 和 Linux 机器上速度不是问题的情况下,绘图速度非常慢。Macbook 有一个 Nvidia GPU,而 Windows 机器只有板载英特尔显卡。

当我查看二进制文件时,似乎在链接到 QtOpenGL 库时,它并没有明确地链接到 GL 库本身。

  • 如何测试硬件加速是否有效或软件后备渲染是否有效?

  • 我的二进制链接不应该是到 GL lib,还是隐藏为递归依赖?

0 投票
2 回答
6524 浏览

c++ - 如何全屏显示 QGLWidget?

我是 OpenGL 和 Qt 的新手,我正在同时学习两者(已经 3 天了:)。几年前,我对 DirectX 进行了一些实验,我清楚地记得可以在那里制作一个全屏窗口。全屏是指真正的全屏,即使没有关闭全屏和最小化按钮的顶部。

到目前为止我有这个程序:

我应该添加什么以使 w 全屏显示?

0 投票
1 回答
330 浏览

c++ - initializeGL 中的 QMessageBox 再次调用 initializeGL

在 catch() 中显示消息框,执行再次进入 initializeGL(),并显示第二个消息框

我试图通过 bool 变量避免这种情况:

但这会导致崩溃。所以我决定在paintGL()中显示错误(它还显示了2个消息框):

这解决了问题,但代码很难看。这个问题有更好的解决方案吗?

Qt4.7 VS2008