Qt開發中觸發鼠標懸停事件

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也是可以的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章