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);
}
相關文章
相關標籤/搜索