Почему мой Qt eventFilter не собирает события мыши?

У меня есть в основном этот код для перехвата определенных QTreeWidget События.

MyWidget :: MyWidget ()
{
     m_tree = new QTreeWidget ();
     // ...
     m_tree -> installEventFilter (this);
}

bool MyWidget :: eventFilter (QObject * obj, QEvent * e)
{
    if (m_tree != obj)
        return QWidget :: eventFilter (obj, e);

    qDebug () << e -> type ();

    switch (e -> type ())
    {
        case QEvent :: MouseButtonPress:
        case QEvent :: MouseButtonRelease:
        case QEvent :: MouseMove:
        case QEvent :: Leave:
            qDebug () << "GOT EM";
            break;
    };

    // ...
 }

Как я нажимаю и перемещаюсь в QTreeWidget, распечатывается обработчик события e->type() для множества событий, но не для событий мыши. События мыши, по-видимому, никогда не происходят (за исключением Leave).

Почему это происходит? Я должен получать события перемещения даже при отключенном отслеживании мыши, при условии, что по крайней мере одна кнопка нажата, и я должен получать события нажатия и отпускания независимо от этого. QTreeWidget Сам ведет себя нормально, как будто никакой обработчик событий не установлен.

0 ответов

Другие вопросы по тегам