【发布时间】:2013-09-03 19:55:55
【问题描述】:
MyWindow 继承自 QMainWindow。 MyWindow 包含一个显示动画的 QGLWidget。
问题是每当我打开菜单或调整窗口大小时动画都会暂停。
动画是通过周期性调用QCoreApplication::postEvent(this, new QEvent(QEvent::UpdateRequest))来实现的,然后每次窗口收到QEvent::UpdateRequest时调用redrawing,像这样:
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 上。
【问题讨论】:
-
可能相关:NSEventTrackingRunLoopMode。参见例如stackoverflow.com/questions/10881122/…
标签: qt qt5 qwidget qmainwindow qevent