QMouseEvent类

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

头文件 #include <QMouseEvent>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承自 QSinglePointEvent

公有函数

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, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
Qt::MouseEventFlagsflags() const

详细描述

当鼠标按钮在控件内部被按下或释放,或者鼠标光标移动时,将发生鼠标事件。

除非启用了QWidget::setMouseTracking来启用鼠标跟踪,否则只能当鼠标按钮被按下时才会发生鼠标移动事件。

Qt在控件内部按下鼠标按钮时会自动捕获鼠标;该控件将继续收到鼠标事件,直到最后一个鼠标按钮被释放。

鼠标事件包含一个特殊的接受标记,指示接收者是否想要事件。如果鼠标事件未被您的控件处理,则应调用ignore()。鼠标事件会沿父控件链向上传播,直到有一个控件通过accept()接受它,或事件过滤器消耗它。

注意:如果将鼠标事件传播到已设置Qt::WA_NoMousePropagation的控件,则不会进一步传播到父控件链的上层。

可以通过调用从QInputEvent继承的modifiers()函数来查找键盘修改键的状态。

position()函数提供了相对于接收鼠标事件的控件或项目的光标位置。如果您因鼠标事件而移动了控件,请使用globalPosition()返回的全局位置,以避免抖动运动。

可以使用 QWidget::setEnabled() 函数来启用或禁用窗口部件的鼠标和键盘事件。

重新实现 QWidget 的事件处理程序,包括 QWidget::mousePressEvent()、QWidget::mouseReleaseEvent()、QWidget::mouseDoubleClickEvent() 以及 QWidget::mouseMoveEvent(),以便在自己的窗口部件中接收鼠标事件。

另见QWidget::setMouseTracking()、QWidget::grabMouse() 和 QCursor::pos()。

成员函数文档

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::MouseButtonPressQEvent::MouseButtonReleaseQEvent::MouseButtonDblClickQEvent::MouseMove

localPos 是相对于接收到的窗口部件或项的鼠标指针位置。在屏幕坐标中,光标的位置由 globalPos 指定。窗口位置被设置为与 localPos 相同的值。引发事件的 buttonQt::MouseButton 枚举中的值给出。如果事件类型 typeMouseMove,则为此事件适当的光标按钮是 Qt::NoButtonbuttons 是事件发生时的所有按钮的状态,modifiers 是所有键盘修饰符的状态。

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::MouseButtonPressQEvent::MouseButtonReleaseQEvent::MouseButtonDblClickQEvent::MouseMove

localPosscenePosglobalPos 指定了鼠标指针相对于接收到的窗口部件或项、窗口以及屏幕或桌面的位置。

引发事件的 buttonQt::MouseButton 枚举中的值给出。如果事件类型 typeMouseMove,则为此事件适当的光标按钮是 Qt::NoButtonbuttons 是事件发生时的所有按钮的状态,modifiers 是所有键盘修饰符的状态。

Qt::MouseEventFlags QMouseEvent::flags() const

返回鼠标事件标志。

鼠标事件标志提供了有关鼠标事件附加信息。

另见Qt::MouseEventFlagQGraphicsSceneMouseEvent::flags

© 2024 Qt 公司有限公司。此文档中包含的文档贡献归各自所有者所有。本提供的文档在GNU自由文档许可版本1.3的条款下获得许可,该许可由自由软件基金会公布。Qt及相应的标志是芬兰及在全球范围内的The Qt Company有限公司的商标。所有其他商标均为其各自所有者的财产。