QWheelEvent 類

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 ().

成員函數文檔編製

QWheelEvent:: QWheelEvent (const QPointF & pos , const QPointF & globalPos , QPoint pixelDelta , QPoint angleDelta , int qt4Delta , Qt::Orientation qt4Orientation , Qt::MouseButtons buttons , Qt::KeyboardModifiers modifiers )

構造滾輪事件對象。

The pos 提供窗口中鼠標光標的位置。在全局坐標中位置的指定是通過 globalPos .

pixelDelta 包含以像素為單位的屏幕捲動距離,而 angleDelta 包含滾輪鏇轉距離。 pixelDelta 可選且可以是 null。

事件發生時的鼠標和鍵盤狀態的指定是通過 buttons and modifiers .

為嚮後兼容,事件還可以保持單嚮滾輪事件數據: qt4Delta 指定鏇轉,和 qt4Orientation 方嚮。

The phase () 被初始化為 Qt::ScrollUpdate 。使用其它構造函數明確指定階段。

另請參閱 posF (), globalPosF (), angleDelta (),和 pixelDelta ().

QWheelEvent:: 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 )

構造滾輪事件對象。

The pos 提供窗口中鼠標光標的位置。在全局坐標中位置的指定是通過 globalPos .

pixelDelta 包含以像素為單位的屏幕捲動距離,而 angleDelta 包含滾輪鏇轉距離。 pixelDelta 可選且可以是 null。

事件發生時的鼠標和鍵盤狀態的指定是通過 buttons and modifiers .

為嚮後兼容,事件還可以保持單嚮滾輪事件數據: qt4Delta 指定鏇轉,和 qt4Orientation 方嚮。

事件捲動階段的指定是通過 phase .

另請參閱 posF (), globalPosF (), angleDelta (), pixelDelta (),和 phase ().

QWheelEvent:: 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 )

構造滾輪事件對象。

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 ().

QWheelEvent:: 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 )

構造滾輪事件對象。

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 ().

QPoint QWheelEvent:: angleDelta () const

返迴鏇轉滾輪的距離,以八分之一度為單位。正值指示滾輪嚮前鏇轉遠離用戶;負值指示滾輪嚮後鏇轉朝著用戶。

大多數鼠標類型以 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 當:

Qt::MouseButtons QWheelEvent:: buttons () const

返迴事件齣現時的鼠標狀態。

QPoint QWheelEvent:: globalPos () const

返迴鼠標指針的全局位置 當事件發生時 。這對異步窗口係統 (譬如 X11) 很重要。每當圍繞響應鼠標事件移動 Widget 時,globalPos() 會非常不同於當前光標位置返迴通過 QCursor::pos ().

另請參閱 globalX () 和 globalY ().

const QPointF &QWheelEvent:: globalPosF () const

返迴鼠標指針的全局位置 當事件發生時 。這對異步窗口係統 (譬如 X11) 很重要。每當圍繞響應鼠標事件移動 Widget 時,globalPosF() 會非常不同於當前光標位置返迴通過 QCursor::pos ().

另請參閱 posF ().

int QWheelEvent:: globalX () const

返迴事件發生時的鼠標光標全局 X 位置。

另請參閱 globalY () 和 globalPos ().

int QWheelEvent:: globalY () const

返迴事件發生時的鼠標光標全局 Y 位置。

另請參閱 globalX () 和 globalPos ().

bool QWheelEvent:: inverted () const

返迴隨事件交付的增量值是否反轉。

通常,垂直滾輪會産生 QWheelEvent 具有正增量值若滾輪頂部鏇轉離開操作它的手。同樣,水平滾輪運動會産生 QWheelEvent 具有正增量值若滾輪頂部嚮左移動。

不管怎樣,在某些平颱這是可配置的,因此如上述的相同操作會産生負增量值 (但幅度一樣)。利用反轉特性,滾輪事件消費者可以選擇始終跟隨滾輪方嚮,不管係統設置,但僅適用於特定 Widget (一種這樣的用例可能是用戶按如視覺 "Tumbler 轉盤" 鏇轉的相同方嚮鏇轉滾輪。另一用例是使滑動手柄跟隨觸摸闆上手指的移動方嚮,不管係統配置)。

注意: 很多平颱不提供這樣的信息。在這種平颱,inverted 始終返迴 false。

該函數在 Qt 5.7 引入。

Qt::ScrollPhase QWheelEvent:: phase () const

返迴此滾輪事件的捲動階段。

注意: The Qt::ScrollBegin and Qt::ScrollEnd 階段目前僅 macOS 支持。

該函數在 Qt 5.2 引入。

QPoint QWheelEvent:: pixelDelta () const

返迴以屏幕像素為單位的捲動距離。此值由支持基於高分辨率像素的增量值的平颱 (譬如 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 () 代替

QPoint QWheelEvent:: pos () const

返迴相對於接收事件 Widget 的鼠標光標位置。

若圍繞響應鼠標事件移動 Widget,使用 globalPos () 而不是此函數。

另請參閱 x (), y (),和 globalPos ().

const QPointF &QWheelEvent:: posF () const

返迴相對於接收事件 Widget 的鼠標光標位置。

若圍繞響應鼠標事件移動 Widget,使用 globalPosF () 而不是此函數。

另請參閱 globalPosF ().

Qt::MouseEventSource QWheelEvent:: source () const

返迴滾輪事件源的有關信息。

源可以用於區分來自具有物理滾輪的鼠標事件,和由某些其它手段 (例如在觸摸闆上輕彈手勢) 生成的事件。

注意: 很多平颱不提供這種信息。在這種平颱 Qt::MouseEventNotSynthesized 始終被返迴。

該函數在 Qt 5.5 引入。

另請參閱 Qt::MouseEventSource .

int QWheelEvent:: x () const

返迴相對於接收事件 Widget 的鼠標光標 X 位置。

另請參閱 y () 和 pos ().

int QWheelEvent:: y () const

返迴相對於接收事件 Widget 的鼠標光標 Y 位置。

另請參閱 x () 和 pos ().