Detailed Description
The QMouseEvent class contains parameters that describe a mouse event.
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.
Member Function Documentation
QMouseEvent::QMouseEvent ( Type type, const QPoint & pos, int button, int state )
Constructs a mouse event object.
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.
QMouseEvent::QMouseEvent ( Type type, const QPoint & pos, const QPoint & globalPos, int button, int state )
Constructs a mouse event object.
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.
void QMouseEvent::accept ()
Sets the accept flag of the mouse event object.
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.
See also ignore().
ButtonState QMouseEvent::button () const
Returns the button that caused the event.
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.
Examples: dclock/dclock.cpp, life/life.cpp, and t14/cannon.cpp.
const QPoint & QMouseEvent::globalPos () const
Returns the global position of the mouse pointer at the time of the event. This is important on asynchronous window systems
like X11. Whenever you move your widgets around in response to
mouse events, globalPos() may differ a lot from the current
pointer position QCursor::pos(), and from QWidget::mapToGlobal(
pos() ).
See also globalX() and globalY().
Example: aclock/aclock.cpp.
int QMouseEvent::globalX () const
Returns the global x-position of the mouse pointer at the time of
the event.
See also globalY() and globalPos().
int QMouseEvent::globalY () const
Returns the global y-position of the mouse pointer at the time of
the event.
See also globalX() and globalPos().
void QMouseEvent::ignore ()
Clears the accept flag parameter of the mouse event object.
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.
See also accept().
bool QMouseEvent::isAccepted () const
Returns TRUE if the receiver of the event wants to keep the key;
otherwise returns FALSE.
const QPoint & QMouseEvent::pos () const
Returns the position of the mouse pointer relative to the widget
that received the 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.
See also x(), y(), and globalPos().
Examples: chart/canvasview.cpp, drawlines/connect.cpp, life/life.cpp, popup/popup.cpp, qmag/qmag.cpp, t14/cannon.cpp, and tooltip/tooltip.cpp.
ButtonState QMouseEvent::state () const
Returns the button state (a combination of mouse buttons and
keyboard modifiers), i.e. what buttons and keys were being pressed
immediately before the event was generated.
Note that this means that for QEvent::MouseButtonPress and QEvent::MouseButtonDblClick, the flag for the button() itself will
not be set in the state, whereas for QEvent::MouseButtonRelease
it will.
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.
Examples: popup/popup.cpp and showimg/showimg.cpp.
ButtonState QMouseEvent::stateAfter () const
Returns the state of buttons after the event.
See also state() and Qt::ButtonState.
int QMouseEvent::x () const
Returns the x-position of the mouse pointer, relative to the
widget that received the event.
See also y() and pos().
Example: showimg/showimg.cpp.
int QMouseEvent::y () const
Returns the y-position of the mouse pointer, relative to the
widget that received the event.
See also x() and pos().
Example: showimg/showimg.cpp.
This file is part of the Qt toolkit.
Copyright © 1995-2003
Trolltech. All Rights Reserved.