I have basically this code to intercept certain QTreeWidget
events.
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; }; // ... }
As I click and move around in the QTreeWidget
, the event handler prints out e->type()
for lots of events, but not the mouse events. Mouse events appear never to happen (with the exception of Leave
).
Why is this happening? I should be getting move events even with mouse tracking off provided at least one button is down, and I should be getting press and release events regardless. The QTreeWidget
itself behaves normally, as if no event handler is installed.