QHoverEvent Class

The QHoverEvent class contains parameters that describe a mouse event. More...

Header: #include <QHoverEvent>
qmake: QT += gui
Inherits: QInputEvent

Detailed Description

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 function 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):

Now, if you move the cursor from the top to the bottom in the middle of A, you will get the following QEvent::MouseMove events:

  1. A::MouseMove
  2. B::MouseMove
  3. 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:

  1. A::HoverMove
  2. A::HoverMove, B::HoverMove
  3. A::HoverMove, B::HoverMove, C::HoverMove