QMouseEvent 类

QMouseEvent 类包含鼠标事件的描述参数。 更多...

头: #include <QMouseEvent>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
继承: QSinglePointEvent

公共函数

  QMouseEvent (QEvent::Type type , const QPointF & localPos , const QPointF & scenePos , const QPointF & globalPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , const QPointingDevice * device = QPointingDevice::primaryPointingDevice())
  QMouseEvent (QEvent::Type type , const QPointF & localPos , const QPointF & globalPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , const QPointingDevice * device = QPointingDevice::primaryPointingDevice())
  QMouseEvent (QEvent::Type type , const QPointF & localPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , const QPointingDevice * device = QPointingDevice::primaryPointingDevice())
Qt::MouseEventFlags flags () const
QPoint pos () const

详细描述

出现鼠标事件,当在 Widget 内按下 (或释放) 鼠标按钮 (或移动鼠标光标) 时。

才发生鼠标移动事件当按下鼠标按钮时,除非启用鼠标跟踪采用 QWidget::setMouseTracking ().

Qt 自动抓取鼠标当在 Widget 内按下鼠标按钮时;Widget 将继续接收鼠标事件,直到最后释放鼠标按钮。

鼠标事件包含特殊接受标志 (指示接收者是否想要事件)。应该调用 ignore () 若 Widget 不处理鼠标事件。鼠标事件会沿父级 Widget 链向上传播,直到小部件接受它采用 accept (),或由事件过滤器消耗掉它。

注意: 若鼠标事件被传播给 widget 其中 Qt::WA_NoMousePropagation 有设置,该鼠标事件将不会沿父级 Widget 链向上进一步传播。

可以找到键盘修饰符键的状态通过调用 modifiers() 函数,继承自 QInputEvent .

position () 函数给出相对于接收鼠标事件的 Widget 或项的光标位置。若因鼠标事件导致 Widget 移动,使用全局位置返回通过 globalPosition () 以避免晃动。

QWidget::setEnabled () 函数可用于启用 (或禁用) 小部件的鼠标事件和键盘事件。

重实现 QWidget 事件处理程序, QWidget::mousePressEvent (), QWidget::mouseReleaseEvent (), QWidget::mouseDoubleClickEvent (),和 QWidget::mouseMoveEvent () 以在自己的 Widget 中接收鼠标事件。

另请参阅 QWidget::setMouseTracking (), QWidget::grabMouse (),和 QCursor::pos ().

成员函数文档编制

QMouseEvent:: QMouseEvent ( QEvent::Type type , const QPointF & localPos , const QPointF & scenePos , const QPointF & globalPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , const QPointingDevice * device = QPointingDevice::primaryPointingDevice())

构造鼠标事件对象。

type 参数必须是 QEvent::MouseButtonPress , QEvent::MouseButtonRelease , QEvent::MouseButtonDblClick ,或 QEvent::MouseMove .

localPos , scenePos and globalPos 分别指定相对于接收 Widget 或项,窗口及屏幕或桌面的鼠标光标点。

button 导致给定值事件来自 Qt::MouseButton 枚举。若事件 type is MouseMove ,此事件的相应按钮为 Qt::NoButton . buttons 是事件发生时所有按钮的状态, modifiers 是所有键盘修饰符的状态。

QMouseEvent:: QMouseEvent ( QEvent::Type type , const QPointF & localPos , const QPointF & globalPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , const QPointingDevice * device = QPointingDevice::primaryPointingDevice())

构造鼠标事件对象源自 device .

type 参数必须是 QEvent::MouseButtonPress , QEvent::MouseButtonRelease , QEvent::MouseButtonDblClick ,或 QEvent::MouseMove .

localPos 是鼠标光标相对于接收 Widget 或项的位置。按屏幕坐标的光标位置的指定由 globalPos 。窗口位置会被设为相同值如 localPos button 导致给定值事件来自 Qt::MouseButton 枚举。若事件 type is MouseMove ,此事件的相应按钮为 Qt::NoButton . buttons 是事件发生时所有按钮的状态, modifiers 是所有键盘修饰符的状态。

QMouseEvent:: QMouseEvent ( QEvent::Type type , const QPointF & localPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , const QPointingDevice * device = QPointingDevice::primaryPointingDevice())

构造鼠标事件对象源自 device .

type 参数必须是某一 QEvent::MouseButtonPress , QEvent::MouseButtonRelease , QEvent::MouseButtonDblClick ,或 QEvent::MouseMove .

localPos 是鼠标光标相对于接收 Widget 或项的位置。窗口位置会被设为相同值如 localPos button 导致给定值事件来自 Qt::MouseButton 枚举。若事件 type is MouseMove ,此事件的相应按钮为 Qt::NoButton 。事件发生时的鼠标和键盘状态的指定是通过 buttons and modifiers .

globalPosition () 被初始化为 QCursor::pos (),可能不合适。使用其它构造函数以明确指定全局位置。

[since 5.3] Qt::MouseEventFlags QMouseEvent:: flags () const

返回鼠标事件标志。

鼠标事件标志提供有关鼠标事件的额外信息。

该函数在 Qt 5.3 引入。

另请参阅 Qt::MouseEventFlag and QGraphicsSceneMouseEvent::flags ().

QPoint QMouseEvent:: pos () const

返回鼠标光标的位置,相对于接收事件的 Widget。

若因鼠标事件导致 Widget 移动,使用由 globalPos() 返回的全局位置以避免晃动。

另请参阅 x (), y (),和 globalPos ().