【问题标题】:Redrawing QGLWidget with 3D+2D graphics用 3D+2D 图形重绘 QGLWidget
【发布时间】:2010-07-18 09:59:38
【问题描述】:

我有一个QGLWidget,它同时绘制 3D 和 2D 图形(就像在 Qt's overpainting example 中一样)。 问题是在我添加了绘制 2D 图形(将代码从 paintGL() 移动到 paintEvent() 等)之后,小部件大部分时间都停止了重绘。重新调整后,加载后等等,它没有重绘。所以我打了repaint() 电话,它在某些情况下有所帮助,但在例如调整大小。

那么我应该使用哪个函数来刷新小部件?是update() 还是updateGL() 还是repaint()?或者也许有一种方法可以设置某种模式以在调整大小/加载/...后启用自动重绘?

谢谢。

【问题讨论】:

    标签: c++ qt opengl


    【解决方案1】:

    您通常应该使用“更新”,因为这将允许将多个排队的绘制事件“折叠”成一个事件。 update 方法将为 QGLWidgets 调用 updateGL。如果您想立即重绘,则应使用“重绘”方法。

    如果您已经连接了一个计时器来定期调用“更新”,那么未能定期重绘通常表明您对 CPU 施加了压力。

    发布一些代码可能更容易理解调整大小/初始化的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-25
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多