Qt之事件过滤器

#include "widget.h"
#include <QPushButton>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{

    _button = new QPushButton("this button", this);
    connect(_button, SIGNAL(clicked()), this, SLOT(close()));

    /*button 给本身安装了一个消息过滤器,那么通过button的消息,都要调用它的消息过滤器函数*/
    _button->installEventFilter(this);
}
#include <QMouseEvent>
bool Widget::eventFilter(QObject *watched, QEvent *event)
{
    if(watched == _button){
        if(event->type() == QEvent::MouseButtonRelease){
                return true;
        }
    }
    return QWidget::eventFilter(watched, event);
}
相关文章
相关标签/搜索