返回介绍

QMouseEvent Class

发布于 2019-10-04 15:01:43 字数 7660 浏览 1103 评论 0 收藏 0

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

#include <qevent.h>

Inherits QEvent.

List of all member functions.

Public Members

  • QMouseEvent ( Typetype, constQPoint&pos, intbutton, intstate )
  • QMouseEvent ( Typetype, constQPoint&pos, constQPoint&globalPos, intbutton, intstate )
  • const QPoint & pos () const
  • const QPoint & globalPos () const
  • int x () const
  • int y () const
  • int globalX () const
  • int globalY () const
  • ButtonState button () const
  • ButtonState state () const
  • ButtonState stateAfter () const
  • bool isAccepted () const
  • void accept ()
  • void ignore ()

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 ( Typetype, constQPoint&pos, intbutton, intstate )

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 ( Typetype, constQPoint&pos, constQPoint&globalPos, intbutton, intstate )

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.

constQPoint& 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.

constQPoint& 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文