obj->installEventFilter(filterObject);
常常是obj->installEventFilter(this).
發送到obj的所有事件, 都會先發送到filterObject的eventFilter()方法, 即filterObject會過濾obj的事件, 這樣就不用為了實現一個事件而要去繼承, 再實現一個類, 完成如mouse event, key event等了, 只用在當前類中就可以通過事件過濾來完成.
bool QObject::eventFilter(QObject *watchedObject, QEvent *event) [virtual]
如果是安裝者的事件if (obj == watchedObject), 處理過此事件(event->type()), 返回true, 沒有處理就返回false.
如果不是安裝者的事件, 則把此事件拋給父類去處理:
if (obj == watchedObject) {
處理后返回true, 否則返回false.
} else {
return SuperClass::eventFilter(watchedObject, event);
}