Qt事件过滤器Event Filter

时间:2023-03-09 01:15:30
Qt事件过滤器Event Filter

事件过滤器针对一类或者多种不同类型的对象,定义了重写操作。

简单的说:

1、先对UI对象注册Event Filter

例如:    ui->drawBtn->installEventFilter(this);

2、定义过滤器操作事件

bool BaseWidget::eventFilter(QObject *obj, QEvent *e)
{
switch(e->type())
{
case QEvent::MouseButtonPress:
QToolTip::showText(static_cast<QMouseEvent *>(e)->globalPos(),
static_cast<QWidget *>(obj)->toolTip());
break;
default:
break;
}
return false;
}

在此便实现了点击具体对象时,弹出QToolTip事件。