Qt开发中触发鼠标悬停事件

比如我有一个tableWidget,需要在鼠标悬停时,显示一些信息或者打印一些信息,可如下操作:

ui->tableWidget->setAttribute(Qt::WA_Hover,true);//开启悬停事件
ui->tableWidget->installEventFilter(this);       //安装事件过滤器

//事件过滤器
bool FormSimpleShow::eventFilter(QObject *obj, QEvent *event)
{
    if(obj == ui->tableWidget) {
        if(event->type() == QEvent::HoverEnter) {
            qDebug() << event;
            return true;
        }
    }
    return QWidget::eventFilter(obj,event);
}
代码中打印event的部分就可以进行相应的处理了。
除了可以过滤QEvent::HoverEnter,还可以过滤QEvent::HoverMove和QEvent::HoverLeave;具体就根据需求来了。当然如果只是想达到如上目的,用QEvent::Enter也是可以的。

你可能感兴趣的:(QT)