QGLWidget updateGL() 不随 QTimer 更新?

Posted

技术标签:

【中文标题】QGLWidget updateGL() 不随 QTimer 更新?【英文标题】:QGLWidget updateGL() doesn't update with QTimer? 【发布时间】:2010-12-17 08:39:32 【问题描述】:

我有一个“QTimer”对象,想在给定的时间间隔内重复更新“QGLWidget”。

我的问题是,当我调用“QGLWidget”的 updateGL() 方法时,内容没有得到更新。

这是我如何初始化 QTimer,

rotationTimer=new QTimer();
rotationTimer->setInterval(500);
QObject::connect(rotationTimer, SIGNAL(timeout()), this, SLOT(slotAutoRotate()),Qt::QueuedConnection);

在 slotAutoRotate() 中,

void RzState3DCurveSelect::slotAutoRotate()

    RzStateMachine3DCurves *sm3d =(RzStateMachine3DCurves*) this->getStateMachine();
    setYRotation(yRot+5);       
    sm3d->getQGLWidget()->updateGL(); // <---- call updateGL() of the widget.
    //QApplication::processEvents();


我什至可以看到我在侧面 'paintGL()' 方法中编写的调试信息,但内容不会更新,除非我将鼠标移到小部件或任何其他交互上。

【问题讨论】:

试试 sm3d->getQGLWidget()->update(); updateGL() 之后 感谢弗兰克,你拯救了我的一天!它有效..你能把这个作为答案,以便我可以将其标记为正确吗?再次感谢。 【参考方案1】:

你必须使用 update() 而不是 updateGL()

【讨论】:

以上是关于QGLWidget updateGL() 不随 QTimer 更新?的主要内容,如果未能解决你的问题,请参考以下文章

QGLWidget 最大尺寸

Qt连接QTableWidget和QGLWidget

ubuntu 上的 QGLWidget 啥也没显示

QGLWidget::renderText 边界框

在 QGLWidget 中将位复制到 QtImage

QGLWidget::renderText() 创建一些向下移动的字母