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 位置。