QHoverEvent 类
QHoverEvent 类包含描述鼠标事件的参数。 更多...
头文件 | #include <QHoverEvent> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承 | QSinglePointEvent |
- 包括继承成员在内的所有成员列表
- 已弃用的成员
- QHoverEvent 是 事件类 的一部分。
公共函数
QHoverEvent(QEvent::Type type, const QPointF &scenePos, const QPointF &globalPos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
QPoint | oldPos() const |
QPointF | oldPosF() const |
详细描述
当鼠标光标移入、移出或悬停在控件内,并且控件具有 Qt::WA_Hover 属性时,将发生鼠标事件。
函数 pos() 提供当前光标位置,而 oldPos() 提供旧鼠标位置。
事件 QEvent::HoverEnter 和 QEvent::HoverLeave 之间有一些相似之处,以及事件 QEvent::Enter 和 QEvent::Leave 之间。然而,它们略有不同,因为我们在 HoverEnter 和 HoverLeave 的事件处理程序中进行 update() 更新。
QEvent::HoverMove 也与 QEvent::MouseMove 略有不同。让我们考虑一个包含一个子窗口 B(再次包含一个子窗口 C,所有这些都启用了鼠标跟踪)的顶级窗口 A
现在,如果将光标从 A 的顶部移动到底部,你将得到以下 QEvent::MouseMove 事件
- A::MouseMove
- B::MouseMove
- C::MouseMove
对于 QEvent::HoverMove,你将得到相同的事件,但事件始终传播到最顶层,无论事件是否接受。只有当具有 Qt::WA_NoMousePropagation 属性时,才会停止传播。
在这种情况下,事件的顺序将是
- A::HoverMove
- A::HoverMove, B::HoverMove
- 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::HoverEnter、QEvent::HoverLeave 或 QEvent::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 公司及其在全球的子公司和关联公司的商标。所有其他商标均为其各自所有者的财产。