MyWindow, который наследуется от QMainWindow. MyWindow содержит QGLWidget, который отображает анимацию.
Проблема в том, что анимация приостанавливается всякий раз, когда я открываю меню или изменяю размер окна.
Анимация реализуется путем периодического вызова QCoreApplication::postEvent(this, new QEvent(QEvent::UpdateRequest))
, а затем вызова перерисовки каждый раз, когда окно получает 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.