Qt 事件过滤器

Qt 事件过滤器_第1张图片

按照上篇 探究一下事件过滤器
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

你可能感兴趣的:(QT,qt,开发语言)