QMouseEvent 类

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

头: #include <QMouseEvent>
qmake: QT += gui
继承: QInputEvent

公共函数

QMouseEvent (QEvent::Type type , const QPointF & localPos , const QPointF & windowPos , const QPointF & screenPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , Qt::MouseEventSource source )
QMouseEvent (QEvent::Type type , const QPointF & localPos , const QPointF & windowPos , const QPointF & screenPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers )
QMouseEvent (QEvent::Type type , const QPointF & localPos , const QPointF & screenPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers )
QMouseEvent (QEvent::Type type , const QPointF & localPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers )
Qt::MouseButton button () const
Qt::MouseButtons buttons () const
Qt::MouseEventFlags flags () const
QPoint globalPos () const
int globalX () const
int globalY () const
const QPointF & localPos () const
QPoint pos () const
const QPointF & screenPos () const
Qt::MouseEventSource source () const
const QPointF & windowPos () const
int x () const
int y () const

详细描述

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

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

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

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

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

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

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

The 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 & windowPos , const QPointF & screenPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , Qt::MouseEventSource source )

构造鼠标事件对象。

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

localPos , windowPos and screenPos 分别指定相对于接收 Widget 或项、窗口及屏幕的鼠标光标位置。

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

The source of the event is specified by source .

该函数在 Qt 5.6 引入。

QMouseEvent:: QMouseEvent ( QEvent::Type type , const QPointF & localPos , const QPointF & windowPos , const QPointF & screenPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers )

构造鼠标事件对象。

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

localPos , windowPos and screenPos 分别指定相对于接收 Widget 或项、窗口及屏幕的鼠标光标位置。

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

QMouseEvent:: QMouseEvent ( QEvent::Type type , const QPointF & localPos , const QPointF & screenPos , Qt::MouseButton button , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers )

构造鼠标事件对象。

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

The localPos 是鼠标光标相对于接收 Widget 或项的位置。按屏幕坐标的光标位置的指定由 screenPos 。窗口位置会被设为相同值如 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 )

构造鼠标事件对象。

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

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

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

Qt::MouseButton QMouseEvent:: button () const

返回导致事件的按钮。

注意:返回值始终是 Qt::NoButton 对于鼠标移动事件而言。

另请参阅 buttons () 和 Qt::MouseButton .

Qt::MouseButtons QMouseEvent:: buttons () const

返回事件生成时的按钮状态。按钮状态是组合 Qt::LeftButton , Qt::RightButton , Qt::MiddleButton 使用 OR 运算符。对于鼠标移动事件,这是被按下的所有按钮。对于鼠标按下和双击事件,这包括导致事件的按钮。对于鼠标释放事件,这排除导致事件的按钮。

另请参阅 button () 和 Qt::MouseButton .

Qt::MouseEventFlags QMouseEvent:: flags () const

返回鼠标事件标志。

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

该函数在 Qt 5.3 引入。

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

QPoint QMouseEvent:: globalPos () const

返回鼠标光标的全局位置 当事件发生时 。这对异步窗口系统 (像 X11) 很重要。每当围绕响应鼠标事件移动 Widget 时,globalPos() 会非常不同于当前指针位置 QCursor::pos (),和来自 QWidget::mapToGlobal ( pos ()).

另请参阅 globalX () 和 globalY ().

int QMouseEvent:: globalX () const

返回事件发生时的鼠标光标全局 X 位置。

另请参阅 globalY () 和 globalPos ().

int QMouseEvent:: globalY () const

返回事件发生时的鼠标光标全局 Y 位置。

另请参阅 globalX () 和 globalPos ().

const QPointF &QMouseEvent:: localPos () const

将鼠标光标位置返回作为 QPointF ,相对于接收事件的 Widget 或项。

若因鼠标事件导致 Widget 移动,使用屏幕位置返回通过 screenPos () 以避免晃动。

该函数在 Qt 5.0 引入。

另请参阅 x (), y (), windowPos (),和 screenPos ().

QPoint QMouseEvent:: pos () const

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

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

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

const QPointF &QMouseEvent:: screenPos () const

将鼠标光标位置返回作为 QPointF ,相对于接收事件的屏幕。

该函数在 Qt 5.0 引入。

另请参阅 x (), y (), pos (), localPos (),和 windowPos ().

Qt::MouseEventSource QMouseEvent:: source () const

返回鼠标事件来源的有关信息。

鼠标事件来源可以用于区分真正和和人造的鼠标事件。后者是由操作系统或 Qt 自身从触摸事件合成的事件。

注意: 很多平台不提供这种信息。在这种平台 Qt::MouseEventNotSynthesized 始终被返回。

该函数在 Qt 5.3 引入。

另请参阅 Qt::MouseEventSource and QGraphicsSceneMouseEvent::source ().

const QPointF &QMouseEvent:: windowPos () const

将鼠标光标位置返回作为 QPointF ,相对接收事件的窗口。

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

该函数在 Qt 5.0 引入。

另请参阅 x (), y (), pos (), localPos (),和 screenPos ().

int QMouseEvent:: x () const

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

另请参阅 y () 和 pos ().

int QMouseEvent:: y () const

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

另请参阅 x () 和 pos ().