Почему мой 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 Сам ведет себя нормально, как будто никакой обработчик событий не установлен.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]