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 更新?的主要内容,如果未能解决你的问题,请参考以下文章