我将对象的anchestor类型从QMainWindow
更改为QWidget
。这使eventFilter()停止工作。如下所示,我将QEvent::FocusIn
替换为QEvent::Enter
,这适用于QMainWindow
和QWidget
。正如我从调试器中猜到的,event->type()
会返回QWidget
的一些无法识别的代码。这是一种错误还是我误解了什么?
bool CoreWidget::eventFilter(QObject *obj, QEvent *event)
{
if ((obj == this) &&
// (event->type() == QEvent::FocusIn) )
(event->type() == QEvent::Enter) )
{
//!! MyAction
return true;
}
else
{
// pass the event on to the parent class
return QWidget::eventFilter(obj, event);
}
}