C++ QGLWidget updateGL()不';你不能用QTimer更新吗?

C++ QGLWidget updateGL()不';你不能用QTimer更新吗?,c++,qt,qt4,timer,C++,Qt,Qt4,Timer,我有一个'QTimer'对象,希望在给定的时间间隔内重复更新'QGLWidget' 我的问题是,当我调用'QGLWidget'的updateGL()方法时,内容不会得到更新 下面是我如何初始化QTimer的 rotationTimer=new QTimer(); rotationTimer->setInterval(500); QObject::connect(rotationTimer, SIGNAL(timeout()), this, SLOT(slotAutoRotate()),Qt

我有一个'QTimer'对象,希望在给定的时间间隔内重复更新'QGLWidget'

我的问题是,当我调用'QGLWidget'的updateGL()方法时,内容不会得到更新

下面是我如何初始化QTimer的

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

void RzState3DCurveSelect::slotutorotate()
{
RzStateMachine3DCurves*sm3d=(RzStateMachine3DCurves*)此->getStateMachine();
坐骨神经痛(yRot+5);

sm3d->getQGLWidget()->updateGL();//你必须使用update()而不是updateGL()

试试sm3d->getQGLWidget()->update();在updateGL()之后谢谢Frank,你救了我一天!成功了..你能给我一个答案让我把它标记为正确吗?再次感谢。
void RzState3DCurveSelect::slotAutoRotate()
{
    RzStateMachine3DCurves *sm3d =(RzStateMachine3DCurves*) this->getStateMachine();
    setYRotation(yRot+5);       
    sm3d->getQGLWidget()->updateGL(); // <---- call updateGL() of the widget.
    //QApplication::processEvents();

}