QWheelEvent#
The QWheelEvent
class contains parameters that describe a wheel event. More…
Synopsis#
Properties#
Functions#
def
__repr__
()def
angleDelta
()def
hasPixelDelta
()def
inverted
()def
isInverted
()def
phase
()def
pixelDelta
()def
source
()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
Wheel events are sent to the widget under the mouse cursor, but if that widget does not handle the event they are sent to the focus widget. Wheel events are generated for both mouse wheels and trackpad scroll gestures. There are two ways to read the wheel event delta: angleDelta()
returns the deltas in wheel degrees. These values are always provided. pixelDelta()
returns the deltas in screen pixels, and is available on platforms that have high-resolution trackpads, such as macOS. If that is the case, device()
->type() will return QInputDevice::DeviceType::Touchpad.
The functions position()
and globalPosition()
return the mouse cursor’s location at the time of the event.
A wheel event contains a special accept flag that indicates whether the receiver wants the event. You should call ignore() if you do not handle the wheel event; this ensures that it will be sent to the parent widget.
The QWidget::setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.
The event handler QWidget::wheelEvent() receives wheel events.
See also
QMouseEvent
grabMouse()
- class PySide6.QtGui.QWheelEvent(pos, globalPos, pixelDelta, angleDelta, buttons, modifiers, phase, inverted[, source=Qt.MouseEventNotSynthesized[, device=QPointingDevice.primaryPointingDevice()]])#
PySide6.QtGui.QWheelEvent(arg__1)
- Parameters:
arg__1 –
PySide6.QtGui.QWheelEvent
angleDelta –
PySide6.QtCore.QPoint
buttons – Combination of
Qt.MouseButton
globalPos –
PySide6.QtCore.QPointF
pixelDelta –
PySide6.QtCore.QPoint
inverted – bool
modifiers – Combination of
Qt.KeyboardModifier
source –
MouseEventSource
device –
PySide6.QtGui.QPointingDevice
phase –
ScrollPhase
pos –
PySide6.QtCore.QPointF
Constructs a wheel event object.
The pos
provides the location of the mouse cursor within the window. The position in global coordinates is specified by globalPos
.
pixelDelta
contains the scrolling distance in pixels on screen, while angleDelta
contains the wheel rotation angle. pixelDelta
is optional and can be null.
The mouse and keyboard states at the time of the event are specified by buttons
and modifiers
.
The scrolling phase of the event is specified by phase
, and the source
indicates whether this is a genuine or artificial (synthesized) event.
If the system is configured to invert the delta values delivered with the event (such as natural scrolling of the touchpad on macOS), inverted
should be true
. Otherwise, inverted
is false
The device from which the wheel event originated is specified by device
.
See also
position()
globalPosition()
angleDelta()
pixelDelta()
phase()
inverted()
device()
Note
Properties can be used directly when from __feature__ import true_property
is used or via accessor functions otherwise.
- property PᅟySide6.QtGui.QWheelEvent.angleDelta: PySide6.QtCore.QPoint#
- Access functions:
angleDelta
()
- property PᅟySide6.QtGui.QWheelEvent.device: PySide6.QtGui.QPointingDevice#
Access functions:
- property PᅟySide6.QtGui.QWheelEvent.inverted: bool#
- Access functions:
inverted
()
- property PᅟySide6.QtGui.QWheelEvent.phase: ScrollPhase#
- Access functions:
phase
()
- property PᅟySide6.QtGui.QWheelEvent.pixelDelta: PySide6.QtCore.QPoint#
- Access functions:
pixelDelta
()
- PySide6.QtGui.QWheelEvent.__repr__()#
- Return type:
object
- PySide6.QtGui.QWheelEvent.angleDelta()#
- Return type:
Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
Returns the relative amount that the wheel was rotated, in eighths of a degree. A positive value indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user. angleDelta().y()
provides the angle through which the common vertical mouse wheel was rotated since the previous event. angleDelta().x()
provides the angle through which the horizontal mouse wheel was rotated, if the mouse has a horizontal wheel; otherwise it stays at zero. Some mice allow the user to tilt the wheel to perform horizontal scrolling, and some touchpads support a horizontal scrolling gesture; that will also appear in angleDelta().x()
.
Most mouse types work in steps of 15 degrees, in which case the delta value is a multiple of 120; i.e., 120 units * 1/8 = 15 degrees.
However, some mice have finer-resolution wheels and send delta values that are less than 120 units (less than 15 degrees). To support this possibility, you can either cumulatively add the delta values from events until the value of 120 is reached, then scroll the widget, or you can partially scroll the widget in response to each wheel event. But to provide a more native feel, you should prefer pixelDelta()
on platforms where it’s available.
Example:
def wheelEvent(self, event): numPixels = event.pixelDelta() numDegrees = event.angleDelta() / 8 if not numPixels.isNull(): scrollWithPixels(numPixels) elif not numDegrees.isNull(): numSteps = numDegrees / 15 scrollWithDegrees(numSteps) event.accept()
Note
On platforms that support scrolling phases
, the delta may be null when:
scrolling is about to begin, but the distance did not yet change (Qt::ScrollBegin),
or scrolling has ended and the distance did not change anymore (Qt::ScrollEnd).
See also
Getter of property angleDelta
.
- PySide6.QtGui.QWheelEvent.hasPixelDelta()#
- Return type:
bool
- PySide6.QtGui.QWheelEvent.inverted()#
- Return type:
bool
Returns whether the delta values delivered with the event are inverted.
Normally, a vertical wheel will produce a QWheelEvent
with positive delta values if the top of the wheel is rotating away from the hand operating it. Similarly, a horizontal wheel movement will produce a QWheelEvent
with positive delta values if the top of the wheel is moved to the left.
However, on some platforms this is configurable, so that the same operations described above will produce negative delta values (but with the same magnitude). With the inverted property a wheel event consumer can choose to always follow the direction of the wheel, regardless of the system settings, but only for specific widgets. (One such use case could be that the user is rotating the wheel in the same direction as a visual Tumbler rotates. Another usecase is to make a slider handle follow the direction of movement of fingers on a touchpad regardless of system configuration.)
Note
Many platforms provide no such information. On such platforms inverted always returns false.
Getter of property inverted
.
- PySide6.QtGui.QWheelEvent.isInverted()#
- Return type:
bool
- PySide6.QtGui.QWheelEvent.phase()#
- Return type:
Returns the scrolling phase of this wheel event.
Note
The Qt::ScrollBegin and Qt::ScrollEnd phases are currently supported only on macOS.
Getter of property phase
.
- PySide6.QtGui.QWheelEvent.pixelDelta()#
- Return type:
Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
Returns the scrolling distance in pixels on screen. This value is provided on platforms that support high-resolution pixel-based delta values, such as macOS. The value should be used directly to scroll content on screen.
Example:
def wheelEvent(self, event): numPixels = event.pixelDelta() numDegrees = event.angleDelta() / 8 if not numPixels.isNull(): scrollWithPixels(numPixels) elif not numDegrees.isNull(): numSteps = numDegrees / 15 scrollWithDegrees(numSteps) event.accept()
Note
On platforms that support scrolling phases
, the delta may be null when:
scrolling is about to begin, but the distance did not yet change (Qt::ScrollBegin),
or scrolling has ended and the distance did not change anymore (Qt::ScrollEnd).
Note
On X11 this value is driver-specific and unreliable, use angleDelta()
instead.
Getter of property pixelDelta
.
- PySide6.QtGui.QWheelEvent.source()#
- Return type:
Use pointingDevice()
instead.
Returns information about the wheel event source.
The source can be used to distinguish between events that come from a mouse with a physical wheel and events that are generated by some other means, such as a flick gesture on a touchpad. This enum tells you from where it was synthesized; but often it’s more useful to know from which device it was synthesized, so try to use pointingDevice()
instead.
Note
Many platforms provide no such information. On such platforms Qt::MouseEventNotSynthesized is returned always.
See also
MouseEventSource