The QHoverEvent class contains parameters which describe a mouse event. Mouse events occur when a mouse cursor is moved into, out of, or within a widget, and if the widget has the Qt::WA_Hover attribute. The method pos() gives the current cursor position, while oldPos() gives the old mouse position.
There are a few similarities between the events QEvent::HoverEnter and QEvent::HoverLeave, and the events QEvent::Enter and QEvent::Leave. However, they are slightly different because we do an update() in the event handler of HoverEnter and HoverLeave. QEvent::HoverMove is also slightly different from QEvent::MouseMove. Let us consider a top-level window A containing a child B which in turn contains a child C (all with mouse tracking enabled):

If you move the cursor from the top to the bottom in the middle of A, you will get the following QEvent::MouseMove events:
-
A::MouseMove
-
B::MouseMove
-
C::MouseMove
You will get the same events for QEvent::HoverMove, except that the event always propagates to the top-level regardless whether the event is accepted or not. It will only stop propagating with the Qt::WA_NoMousePropagation attribute.
In this case the events will occur in the following way:
-
A::HoverMove
-
A::HoverMove, B::HoverMove
-
A::HoverMove, B::HoverMove, C::HoverMove
- See also
- pos()