Inherits QEvent.
Mouse events occur when a mouse button is pressed or released inside a widget or when the mouse cursor is moved.
Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with QWidget::setMouseTracking().
Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.
A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call QMouseEvent::ignore() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with QMouseEvent::accept() or an event filter consumes it.
The functions pos(), x() and y() give the cursor position relative to the widget that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.
The QWidget::setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.
The event handlers QWidget::mousePressEvent(), QWidget::mouseReleaseEvent(), QWidget::mouseDoubleClickEvent() and QWidget::mouseMoveEvent() receive mouse events.
See also QWidget::mouseTracking, QWidget::grabMouse(), QCursor::pos(), and Event Classes.
The type parameter must be one of QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick or QEvent::MouseMove.
The pos parameter specifies the position relative to the receiving widget. button specifies the button that caused the event, which should be Qt::NoButton (0), if type is MouseMove. state is the ButtonState at the time of the event.
The globalPos() is initialized to QCursor::pos(), which may not be appropriate. Use the other constructor to specify the global position explicitly.
The type parameter must be QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick or QEvent::MouseMove.
The pos parameter specifies the position relative to the receiving widget. globalPos is the position in absolute coordinates. button specifies the button that caused the event, which should be Qt::NoButton (0), if type is MouseMove. state is the ButtonState at the time of the event.
Setting the accept parameter indicates that the receiver of the event wants the mouse event. Unwanted mouse events are sent to the parent widget.
The accept flag is set by default.
Possible return values are LeftButton, RightButton, MidButton and NoButton.
Note that the returned value is always NoButton for mouse move events.
See also state() and Qt::ButtonState.
See also globalX() and globalY().
See also globalY() and globalPos().
See also globalX() and globalPos().
Clearing the accept parameter indicates that the event receiver does not want the mouse event. Unwanted mouse events are sent to the parent widget.
The accept flag is set by default.
If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.
See also x(), y(), and globalPos().
This means that if you have a QEvent::MouseButtonPress or a QEvent::MouseButtonDblClick state() will not include the mouse button that's pressed. But once the mouse button has been released, the QEvent::MouseButtonRelease event will have the button() that was pressed.
This value is mainly interesting for QEvent::MouseMove; for the other cases, button() is more useful.
The returned value is LeftButton, RightButton, MidButton, ShiftButton, ControlButton and AltButton OR'ed together.
See also button(), stateAfter(), and Qt::ButtonState.
See also state() and Qt::ButtonState.
See also y() and pos().
See also x() and pos().
Example: showimg/showimg.cpp.