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 ().
构造鼠标事件对象。
type 参数必须是 QEvent::MouseButtonPress , QEvent::MouseButtonRelease , QEvent::MouseButtonDblClick ,或 QEvent::MouseMove .
点 localPos , scenePos and globalPos 分别指定相对于接收 Widget 或项,窗口及屏幕或桌面的鼠标光标点。
button 导致给定值事件来自 Qt::MouseButton 枚举。若事件 type is MouseMove ,此事件的相应按钮为 Qt::NoButton . buttons 是事件发生时所有按钮的状态, modifiers 是所有键盘修饰符的状态。
构造鼠标事件对象源自 device .
type 参数必须是 QEvent::MouseButtonPress , QEvent::MouseButtonRelease , QEvent::MouseButtonDblClick ,或 QEvent::MouseMove .
localPos 是鼠标光标相对于接收 Widget 或项的位置。按屏幕坐标的光标位置的指定由 globalPos 。窗口位置会被设为相同值如 localPos 。 button 导致给定值事件来自 Qt::MouseButton 枚举。若事件 type is MouseMove ,此事件的相应按钮为 Qt::NoButton . buttons 是事件发生时所有按钮的状态, modifiers 是所有键盘修饰符的状态。
构造鼠标事件对象源自 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 ().
返回鼠标光标的位置,相对于接收事件的 Widget。
若因鼠标事件导致 Widget 移动,使用由 globalPos() 返回的全局位置以避免晃动。