QGLWidget updateGL()不会使用QTimer更新?

时间:2010-12-17 08:39:33

标签: c++ qt qt4 timer

我有一个'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()”方法中编写的调试信息,但内容不会更新,除非我将鼠标移到窗口小部件或任何其他交互上。

1 个答案:

答案 0 :(得分:2)

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