按照上篇 探究一下事件过滤器
widget 添加过滤函数
bool Widget::eventFilter(QObject * obj,QEvent * event){
if(obj == lineEdit){
if(event->type()== QEvent::KeyPress) qDebug() << tr("widget的过滤器");
}
return QWidget::eventFilter(obj,event);
}
//
.h声明
public
bool eventFilter(QObject *obj, QEvent *event);
mylineedit添加过滤函数
bool MylineEdit::event(QEvent *event){
if(event->type() == QEvent::KeyPress)
qDebug()<<tr("mylineEdit的event");
return QLineEdit::event(event);
//.h声明
public
bool event(QEvent *event);
}
运行如下
-
首先经过的就是widget的过滤器
然后执行 mylineedit的 event
最后响应keypressevent