QHoverEvent 类

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

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

公共函数

QHoverEvent(QEvent::Type type, const QPointF &scenePos, const QPointF &globalPos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
QPointoldPos() const
QPointFoldPosF() const

详细描述

当鼠标光标移入、移出或悬停在控件内,并且控件具有 Qt::WA_Hover 属性时,将发生鼠标事件。

函数 pos() 提供当前光标位置,而 oldPos() 提供旧鼠标位置。

事件 QEvent::HoverEnterQEvent::HoverLeave 之间有一些相似之处,以及事件 QEvent::EnterQEvent::Leave 之间。然而,它们略有不同,因为我们在 HoverEnter 和 HoverLeave 的事件处理程序中进行 update() 更新。

QEvent::HoverMove 也与 QEvent::MouseMove 略有不同。让我们考虑一个包含一个子窗口 B(再次包含一个子窗口 C,所有这些都启用了鼠标跟踪)的顶级窗口 A

现在,如果将光标从 A 的顶部移动到底部,你将得到以下 QEvent::MouseMove 事件

  1. A::MouseMove
  2. B::MouseMove
  3. C::MouseMove

对于 QEvent::HoverMove,你将得到相同的事件,但事件始终传播到最顶层,无论事件是否接受。只有当具有 Qt::WA_NoMousePropagation 属性时,才会停止传播。

在这种情况下,事件的顺序将是

  1. A::HoverMove
  2. A::HoverMove, B::HoverMove
  3. A::HoverMove, B::HoverMove, C::HoverMove

成员函数文档

QHoverEvent::QHoverEvent(QEvent::Type type, const QPointF &scenePos, const QPointF &globalPos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())

device 创建一个悬停事件对象。

type 参数必须是 QEvent::HoverEnterQEvent::HoverLeaveQEvent::HoverMove

scenePos 是相对于接收窗口或场景的当前鼠标光标位置,oldPos 是其上一个位置,而 globalPos 是鼠标的绝对坐标位置。 modifiers 包含事件发生时所有键盘修饰符的状态。

QPoint QHoverEvent::oldPos() const

返回鼠标光标的上一个位置,相对于接收事件的小部件。如果没有上一个位置,oldPos() 将返回与 pos() 相同的位置。

QEvent::HoverEnter 事件中,此位置将始终是 QPoint(-1, -1)。

另见 pos()。

QPointF QHoverEvent::oldPosF() const

返回鼠标光标的上一个位置,相对于接收事件的小部件。如果没有上一个位置,oldPosF() 将返回与 posF() 相同的位置。

QEvent::HoverEnter 事件中,此位置将始终是 QPointF(-1, -1)。

另见 posF()。

© 2024 Qt 公司有限公司。此处包含的文档贡献的版权属于各自的所有者。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 的条款许可的。Qt 及相关标志是芬兰的 Qt 公司及其在全球的子公司和关联公司的商标。所有其他商标均为其各自所有者的财产。