QT(5) 多事件響應 事件過濾器 示例原始碼

2021-09-28 13:31:16 字數 1067 閱讀 5287

事件過濾器可以很容易的處理多個部件的多個事件。

事件過濾器是由兩個函式組成的一種操作。兩個函式為installeventfilter()eventfilter()。

實現步驟:

1.建立部件

2.為部件安裝過濾器installeventfilter

3.在mainwindows中新增eventfilter處理函式

3.1判斷部件型別

3.2判斷事件型別

**示例

mainwindow.h mainwindow.cpp
#ifndef mainwindow_h

#define mainwindow_h

#include qt_begin_namespace

namespace ui

qt_end_namespace

class mainwindow : public qmainwindow

;#endif // mainwindow_h

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include #include mainwindow::mainwindow(qwidget *parent)

: qmainwindow(parent)

, ui(new ui::mainwindow)

mainwindow::~mainwindow()

bool mainwindow::eventfilter(qobject *obj, qevent *event) // 事件過濾器

else

}else if (obj == ui->spinbox) else

} else

}else return qwidget::eventfilter(obj, event);

}

Qt5 事件過濾器

事件過濾器 qt中乙個獨特的事件處理機制,可以讓乙個物件偵聽攔截 另外乙個物件的事件 1 呼叫installeventfilter 註冊需要管理的物件 2 在eventfilter 裡處理需要管理的物件的事件。例如 用 obja 過濾 objb 的事件,即事件到達 objb 之前,先交由 obja ...

QT(5) 多事件響應 示例原始碼

本文講的是qt中的事件及其響應。首先訊號和事件是兩個層面的東西,我簡單的理解為人機介面互動中,輸入裝置如滑鼠 鍵盤的操作,還有定時器產生的動作。這個解釋並不準確,但先這麼解釋吧。應用上 乙個mainwindow裡有好幾個控制項,我按下鍵盤後,要a控制項響應,b控制項不響應 如何實現呢?首先 要知道事...

QT(5) 多事件響應 示例原始碼

本文講的是qt中的事件及其響應。首先訊號和事件是兩個層面的東西,我簡單的理解為人機介面互動中,輸入裝置如滑鼠 鍵盤的操作,還有定時器產生的動作。這個解釋並不準確,但先這麼解釋吧。應用上 乙個mainwindow裡有好幾個控制項,我按下鍵盤後,要a控制項響應,b控制項不響應 如何實現呢?首先 要知道事...