event函数是负责事件分发的
\
\
bool MyWidget::event(QEvent *e)
{
//事件分发
// switch (e->type() ) {
// case QEvent::Close:
// closeEvent(e);
// break;
// case QEvent::MouseMove:
// mouseMoveEvent(e);
// break;
// ``````
// }
if(e->type() == QEvent::Timer)
{
//干掉定时器
//如果返回true,事件停止传播
//转换类型QTimerEvent *e 下面两句可以重启定时器
// QTimerEvent *env = static_cast<QTimerEvent *>(e);
// timerEvent(env);
return true;
}
else if(e->type() == QEvent::KeyPress)
{
//类型转换
QKeyEvent *env = static_cast<QKeyEvent *>(e);
if(env->key() == Qt::Key_B)
{
return QWidget::event(e);
}
return true;
}
else
{
return QWidget::event(e);
}
}
\