У меня есть в основном этот код для перехвата определенных 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
Сам ведет себя нормально, как будто никакой обработчик событий не установлен.
Задача ещё не решена.
Других решений пока нет …