QT 安裝事件過濾器

前提: 在QWidget 中 給QLabel控件添加一個事件過濾器,實現點擊該控件時輸出調試信息

步驟:1. 在.h文件中添加

public:
     bool eventFilter(QObject *watched, QEvent *event);

2.構造函數中安裝事件過濾器

 ui->show_label->installEventFilter(this);
  1. 實現功能 輸出:點擊控件時,輸出調試信息
bool ShowMVCamera::eventFilter(QObject *watched, QEvent *event)//事件過濾器器
{
    if(watched == ui->showMV_1_label)
    {        if(event->type() == QEvent::MouseButtonPress)
        {
            qDebug()<<"label clicked!";
            return true;
        }
    }
    return QWidget::eventFilter(watched,event);


}

第三步最後一句如果使用return QDialog::eventFilter(watched,event);

在編譯程序時就會報錯。

備註:在事件過濾器中先判斷控件的類型,再判斷事件的類型。 對於特定的事件,如果不希望它在後面的傳遞過程中再被處理,那麼就返回true,否則返回false。

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