//事件分发器
bool event(QEvent *e);
return true才表示拦截,表示不再向下分发
代码:
//事件分发器
bool MyLabel::event(QEvent *e){
//只针对于鼠标按下事件,其他事情交给 父类处理
if(e->type()==QEvent::MouseButtonPress){
QMouseEvent * ev = static_cast<QMouseEvent*>(e);
QString str = QString("鼠标按下: x= %1 , y= %2").arg(ev->x()).arg(ev->y());
qDebug()<<str;
return true; //拦截事件,不再向下分发
}
//其他事件交给父类处理
return QLabel::event(e);
}