MyWindow 继承自 QMainWindow。MyWindow 包含一个显示动画的 QGLWidget。
问题是每当我打开菜单或调整窗口大小时动画都会暂停。
动画是通过QCoreApplication::postEvent(this, new QEvent(QEvent::UpdateRequest))
周期性调用实现的,然后每次窗口接收到时调用redrawing QEvent::UpdateRequest
,像这样:
bool MyWindow::event(QEvent *event)
{
qDebug() << event;
switch (event->type())
{
case QEvent::UpdateRequest:
render();
return true;
default:
return QMainWindow::event(event);
}
}
从图中可以看出qDebug()
,在打开菜单或调整窗口大小时,窗口停止接收更新请求事件。
QMainWindow/QWidget 上是否有设置让它继续接收更新请求事件?还是有更好的方法来实现动画?
编辑:我在 Mac OS X 上。