The QWheelEvent 类包含滚轮事件的描述参数。 更多...
头: | #include <QWheelEvent> |
qmake: | QT += gui |
继承: | QInputEvent |
QWheelEvent (const QPointF & pos , const QPointF & globalPos , QPoint pixelDelta , QPoint angleDelta , int qt4Delta , Qt::Orientation qt4Orientation , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers ) | |
QWheelEvent (const QPointF & pos , const QPointF & globalPos , QPoint pixelDelta , QPoint angleDelta , int qt4Delta , Qt::Orientation qt4Orientation , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , Qt::ScrollPhase phase ) | |
QWheelEvent (const QPointF & pos , const QPointF & globalPos , QPoint pixelDelta , QPoint angleDelta , int qt4Delta , Qt::Orientation qt4Orientation , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , Qt::ScrollPhase phase , Qt::MouseEventSource source ) | |
QWheelEvent (const QPointF & pos , const QPointF & globalPos , QPoint pixelDelta , QPoint angleDelta , int qt4Delta , Qt::Orientation qt4Orientation , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers , Qt::ScrollPhase phase , Qt::MouseEventSource source , bool inverted ) | |
QPoint | angleDelta () const |
Qt::MouseButtons | buttons () const |
QPoint | globalPos () const |
const QPointF & | globalPosF () const |
int | globalX () const |
int | globalY () const |
bool | inverted () const |
Qt::ScrollPhase | phase () const |
QPoint | pixelDelta () const |
QPoint | pos () const |
const QPointF & | posF () const |
Qt::MouseEventSource | source () const |
int | x () const |
int | y () const |
The QWheelEvent 类包含滚轮事件的描述参数。
滚轮事件会被发送给鼠标光标下 Widget,但若该小部件不处理事件,它们会被发送给聚焦小部件。鼠标滚轮和触摸板卷动手势都会生成滚轮事件。有 2 种方式能读取滚轮事件增量: angleDelta () 返回滚轮增量以度为单位。始终提供此值。 pixelDelta () 返回屏幕增量以像素为单位,且可用于拥有高分辨率触摸板的平台 (譬如 macOS)。若是这种情况, source () 会返回 Qt::MouseEventSynthesizedBySystem .
函数 pos () 和 globalPos () 返回事件出现时鼠标光标位置。
滚轮事件包含指示接收者是否想要事件的,特殊接受标志。应该调用 ignore () 若不处理滚轮事件;这确保它会被发送给父级 Widget。
The QWidget::setEnabled () 函数可用于启用 (或禁用) 小部件的鼠标事件和键盘事件。
事件处理程序 QWidget::wheelEvent () 接收滚轮事件。
另请参阅 QMouseEvent and QWidget::grabMouse ().
构造滚轮事件对象。
The pos 提供窗口中鼠标光标的位置。在全局坐标中位置的指定是通过 globalPos .
pixelDelta 包含以像素为单位的屏幕卷动距离,而 angleDelta 包含滚轮旋转距离。 pixelDelta 可选且可以是 null。
事件发生时的鼠标和键盘状态的指定是通过 buttons and modifiers .
为向后兼容,事件还可以保持单向滚轮事件数据: qt4Delta 指定旋转,和 qt4Orientation 方向。
The phase () 被初始化为 Qt::ScrollUpdate 。使用其它构造函数明确指定阶段。
另请参阅 posF (), globalPosF (), angleDelta (),和 pixelDelta ().
构造滚轮事件对象。
The pos 提供窗口中鼠标光标的位置。在全局坐标中位置的指定是通过 globalPos .
pixelDelta 包含以像素为单位的屏幕卷动距离,而 angleDelta 包含滚轮旋转距离。 pixelDelta 可选且可以是 null。
事件发生时的鼠标和键盘状态的指定是通过 buttons and modifiers .
为向后兼容,事件还可以保持单向滚轮事件数据: qt4Delta 指定旋转,和 qt4Orientation 方向。
事件卷动阶段的指定是通过 phase .
另请参阅 posF (), globalPosF (), angleDelta (), pixelDelta (),和 phase ().
构造滚轮事件对象。
The pos 提供窗口中鼠标光标的位置。在全局坐标中位置的指定是通过 globalPos .
pixelDelta 包含以像素为单位的屏幕卷动距离,而 angleDelta 包含滚轮旋转距离。 pixelDelta 可选且可以是 null。
事件发生时的鼠标和键盘状态的指定是通过 buttons and modifiers .
为向后兼容,事件还可以保持单向滚轮事件数据: qt4Delta 指定旋转,和 qt4Orientation 方向。
事件卷动阶段的指定是通过 phase .
若滚轮事件来自物理鼠标滚轮, source 被设为 Qt::MouseEventNotSynthesized 。若它来自由操作系统检测到的手势,或来自非鼠标硬件设备,譬如 pixelDelta 与手指运动直接相关, source 被设为 Qt::MouseEventSynthesizedBySystem 。若它来自 Qt,source 被设为 Qt::MouseEventSynthesizedByQt .
另请参阅 posF (), globalPosF (), angleDelta (), pixelDelta (),和 phase ().
构造滚轮事件对象。
The pos 提供窗口中鼠标光标的位置。在全局坐标中位置的指定是通过 globalPos .
pixelDelta 包含以像素为单位的屏幕卷动距离,而 angleDelta 包含滚轮旋转距离。 pixelDelta 可选且可以是 null。
事件发生时的鼠标和键盘状态的指定是通过 buttons and modifiers .
为向后兼容,事件还可以保持单向滚轮事件数据: qt4Delta 指定旋转,和 qt4Orientation 方向。
事件卷动阶段的指定是通过 phase .
若滚轮事件来自物理鼠标滚轮, source 被设为 Qt::MouseEventNotSynthesized 。若它来自由操作系统检测到的手势,或来自非鼠标硬件设备,譬如 pixelDelta 与手指运动直接相关, source 被设为 Qt::MouseEventSynthesizedBySystem 。若它来自 Qt,source 被设为 Qt::MouseEventSynthesizedByQt .
若系统被配置为反转随事件交付的增量值 (譬如 OS X 触摸板的自然卷动),
inverted
应该为
true
。否则,
inverted
is
false
另请参阅 posF (), globalPosF (), angleDelta (), pixelDelta (),和 phase ().
返回旋转滚轮的距离,以八分之一度为单位。正值指示滚轮向前旋转远离用户;负值指示滚轮向后旋转朝着用户。
大多数鼠标类型以 15 度步幅为单位工作,在这种情况下,增量值是 120 的倍增 (即:120 单位 *1/8 = 15 度)。
不管怎样,一些鼠标拥有更精细分辨率的滚轮,并发送小于 120 单位 (小于 15 度) 的增量值。要支持这种可能性,可以累加来自事件的增量值,直到达到 120,然后卷动 Widget,或者,可以部分卷动小部件以响应各滚轮事件。
范例:
void MyWidget::wheelEvent(QWheelEvent *event) { QPoint numPixels = event->pixelDelta(); QPoint numDegrees = event->angleDelta() / 8; if (!numPixels.isNull()) { scrollWithPixels(numPixels); } else if (!numDegrees.isNull()) { QPoint numSteps = numDegrees / 15; scrollWithDegrees(numSteps); } event->accept(); }
注意: 当平台支持卷动 phases ,增量可能为 null 当:
返回事件出现时的鼠标状态。
返回鼠标指针的全局位置 当事件发生时 。这对异步窗口系统 (譬如 X11) 很重要。每当围绕响应鼠标事件移动 Widget 时,globalPos() 会非常不同于当前光标位置返回通过 QCursor::pos ().
返回鼠标指针的全局位置 当事件发生时 。这对异步窗口系统 (譬如 X11) 很重要。每当围绕响应鼠标事件移动 Widget 时,globalPosF() 会非常不同于当前光标位置返回通过 QCursor::pos ().
另请参阅 posF ().
返回事件发生时的鼠标光标全局 X 位置。
另请参阅 globalY () 和 globalPos ().
返回事件发生时的鼠标光标全局 Y 位置。
另请参阅 globalX () 和 globalPos ().
返回随事件交付的增量值是否反转。
通常,垂直滚轮会产生 QWheelEvent 具有正增量值若滚轮顶部旋转离开操作它的手。同样,水平滚轮运动会产生 QWheelEvent 具有正增量值若滚轮顶部向左移动。
不管怎样,在某些平台这是可配置的,因此如上述的相同操作会产生负增量值 (但幅度一样)。利用反转特性,滚轮事件消费者可以选择始终跟随滚轮方向,不管系统设置,但仅适用于特定 Widget (一种这样的用例可能是用户按如视觉 "Tumbler 转盘" 旋转的相同方向旋转滚轮。另一用例是使滑动手柄跟随触摸板上手指的移动方向,不管系统配置)。
注意: 很多平台不提供这样的信息。在这种平台,inverted 始终返回 false。
该函数在 Qt 5.7 引入。
返回此滚轮事件的卷动阶段。
注意: The Qt::ScrollBegin and Qt::ScrollEnd 阶段目前仅 macOS 支持。
该函数在 Qt 5.2 引入。
返回以屏幕像素为单位的卷动距离。此值由支持基于高分辨率像素的增量值的平台 (譬如 macOS) 提供。应该将值直接用于卷动屏幕内容。
范例:
void MyWidget::wheelEvent(QWheelEvent *event) { QPoint numPixels = event->pixelDelta(); QPoint numDegrees = event->angleDelta() / 8; if (!numPixels.isNull()) { scrollWithPixels(numPixels); } else if (!numDegrees.isNull()) { QPoint numSteps = numDegrees / 15; scrollWithDegrees(numSteps); } event->accept(); }
注意: 当平台支持卷动 phases ,增量可能为 null 当:
注意: 在 X11,此值是驱动程序特定的且不可靠,使用 angleDelta () 代替
返回相对于接收事件 Widget 的鼠标光标位置。
若围绕响应鼠标事件移动 Widget,使用 globalPos () 而不是此函数。
另请参阅 x (), y (),和 globalPos ().
返回相对于接收事件 Widget 的鼠标光标位置。
若围绕响应鼠标事件移动 Widget,使用 globalPosF () 而不是此函数。
另请参阅 globalPosF ().
返回滚轮事件源的有关信息。
源可以用于区分来自具有物理滚轮的鼠标事件,和由某些其它手段 (例如在触摸板上轻弹手势) 生成的事件。
注意: 很多平台不提供这种信息。在这种平台 Qt::MouseEventNotSynthesized 始终被返回。
该函数在 Qt 5.5 引入。
另请参阅 Qt::MouseEventSource .
返回相对于接收事件 Widget 的鼠标光标 X 位置。
返回相对于接收事件 Widget 的鼠标光标 Y 位置。