为什么Qt5 QEvent :: FocusIn不适用于QWidget?

时间:2016-12-08 08:31:58

标签: c++ qt5 qwidget

我将对象的anchestor类型从QMainWindow更改为QWidget。这使eventFilter()停止工作。如下所示,我将QEvent::FocusIn替换为QEvent::Enter,这适用于QMainWindowQWidget。正如我从调试器中猜到的,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);
    }
}

0 个答案:

没有答案