Auf dieser Seite

QWheelEvent Class

Die Klasse „QWheelEvent“ enthält Parameter, die ein Radereignis beschreiben. Mehr...

Header: #include <QWheelEvent>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Erbt von: QSinglePointEvent

Eigenschaften

Öffentliche Funktionen

QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
QPoint angleDelta() const
bool inverted() const
Qt::ScrollPhase phase() const
QPoint pixelDelta() const

Neu implementierte öffentliche Funktionen

virtual bool isBeginEvent() const override
virtual bool isEndEvent() const override
virtual bool isUpdateEvent() const override

Geschützte Funktionen

QWheelEvent(QWheelEvent &&)
QWheelEvent &operator=(QWheelEvent &&)
QWheelEvent &operator=(const QWheelEvent &other)

Ausführliche Beschreibung

Räderereignisse werden an das Widget unter dem Mauszeiger gesendet; sollte dieses Widget das Ereignis jedoch nicht verarbeiten, werden sie an das Widget mit Fokus weitergeleitet. Räderereignisse werden sowohl für Mausräder als auch für Scroll-Gesten auf dem Trackpad generiert. Es gibt zwei Möglichkeiten, das Räderereignis-Delta auszulesen: ` angleDelta()` gibt die Deltas in Radgraden zurück. Diese Werte werden immer bereitgestellt. ` pixelDelta` () gibt die Deltas in Bildschirmpixeln zurück und ist auf Plattformen verfügbar, die über hochauflösende Trackpads verfügen, wie beispielsweise macOS. Ist dies der Fall, gibt device()->type() den Wert QInputDevice::DeviceType::Touchpad zurück.

Die Funktionen position() und globalPosition() geben die Position des Mauszeigers zum Zeitpunkt des Ereignisses zurück.

Ein Räder-Ereignis enthält ein spezielles Akzeptanz-Flag, das angibt, ob der Empfänger das Ereignis annehmen möchte. Sie sollten ignore() aufrufen, wenn Sie das Räder-Ereignis nicht verarbeiten; dies stellt sicher, dass es an das übergeordnete Widget weitergeleitet wird.

Mit der Funktion ` QWidget::setEnabled()` können Sie Maus- und Tastaturereignisse für ein Widget aktivieren oder deaktivieren.

Der Ereignis-Handler ` QWidget::wheelEvent()` empfängt Räder-Ereignisse.

Siehe auch „ QMouseEvent “ und „ QWidget::grabMouse()“.

Dokumentation zu Eigenschaften

[read-only] angleDelta : QPoint

Diese Eigenschaft enthält den relativen Drehwinkel des Rads in Achtelgrad.

Ein positiver Wert bedeutet, dass das Rad vom Benutzer weg nach vorne gedreht wurde; ein negativer Wert bedeutet, dass das Rad zum Benutzer hin nach hinten gedreht wurde. ` angleDelta().y() ` liefert den Winkel, um den das übliche vertikale Mausrad seit dem letzten Ereignis gedreht wurde. ` angleDelta().x() ` liefert den Winkel, um den das horizontale Mausrad gedreht wurde, sofern die Maus über ein solches Rad verfügt; ansonsten bleibt der Wert bei Null.

Die meisten Mausmodelle arbeiten in Schritten von 15 Grad; in diesem Fall ist der Delta-Wert ein Vielfaches von 120, d. h. 120 Einheiten * 1/8 = 15 Grad.

Hinweis: Auf Plattformen, die das Scrollen phases unterstützen, kann der Delta-Wert null sein, wenn das Scrollen gerade beginnt (Qt::ScrollBegin) oder beendet wurde (Qt::ScrollEnd).

Zugriffsfunktionen:

QPoint angleDelta() const

Siehe auch pixelDelta().

[read-only] device : const QPointingDevice*

Diese Eigenschaft enthält das Gerät, von dem das Rad-Ereignis stammt

Siehe auch ` pointingDevice()`.

[read-only] inverted : bool

Diese Eigenschaft gilt unabhängig davon, ob die mit dem Ereignis übermittelten Delta-Werte invertiert sind

Normalerweise erzeugt ein vertikales Rad ein „ QWheelEvent “ mit positiven Delta-Werten, wenn sich die Oberseite des Rads von der Hand wegdreht, die es bedient. Analog dazu erzeugt eine horizontale Radbewegung ein „ QWheelEvent “ mit positiven Delta-Werten, wenn die Oberseite des Rads nach links bewegt wird.

Auf einigen Plattformen ist dies jedoch konfigurierbar, sodass die oben beschriebenen Vorgänge negative Deltawerte (jedoch mit derselben Größe) erzeugen. Mit der Eigenschaft „inverted“ kann ein Empfänger von Radereignissen festlegen, dass er unabhängig von den Systemeinstellungen stets der Richtung des Rads folgt – allerdings nur für bestimmte Widgets.

Hinweis: Viele Plattformen stellen keine derartigen Informationen zur Verfügung. Auf solchen Plattformen gibt „ inverted “ immer „false“ zurück.

Zugriffsfunktionen:

bool inverted() const

[read-only] phase : Qt::ScrollPhase

Diese Eigenschaft enthält die Scrollphase dieses Rad-Ereignisses

Hinweis: Die Phasen „ Qt::ScrollBegin “ und „ Qt::ScrollEnd “ werden derzeit nur unter macOS unterstützt.

Zugriffsfunktionen:

Qt::ScrollPhase phase() const

[read-only] pixelDelta : QPoint

Diese Eigenschaft enthält die Bildlaufdistanz in Pixeln auf dem Bildschirm

Dieser Wert wird auf Plattformen bereitgestellt, die hochauflösende, pixelbasierte Delta-Werte unterstützen, wie beispielsweise macOS. Der Wert sollte direkt zum Scrollen von Inhalten auf dem Bildschirm verwendet werden.

Hinweis: Auf Plattformen, die das Scrollen über „ phases “ unterstützen, kann der Delta-Wert null sein, wenn das Scrollen gerade beginnt (Qt::ScrollBegin) oder bereits beendet ist (Qt::ScrollEnd).

Hinweis: Unter X11 ist dieser Wert treiberspezifisch und unzuverlässig; verwenden Sie stattdessen angleDelta().

Zugriffsfunktionen:

QPoint pixelDelta() const

Siehe auch ` angleDelta()` ().

Dokumentation zu den Mitgliedsfunktionen

QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())

Erstellt ein Rad-Ereignisobjekt.

Die Eigenschaft „ pos “ gibt die Position des Mauszeigers innerhalb des Fensters an. Die Position in globalen Koordinaten wird durch „ globalPos “ angegeben.

pixelDelta enthält die Bildlaufstrecke in Pixeln auf dem Bildschirm, während ` angleDelta ` den Drehwinkel des Mausrads enthält. ` pixelDelta ` ist optional und kann den Wert `null` annehmen.

Der Maus- und Tastaturstatus zum Zeitpunkt des Ereignisses wird durch ` buttons ` und ` modifiers` angegeben.

Die Scrollphase des Ereignisses wird durch ` phase` angegeben, und ` source ` gibt an, ob es sich um ein echtes oder ein künstliches (synthetisiertes) Ereignis handelt.

Wenn das System so konfiguriert ist, dass die mit dem Ereignis übermittelten Delta-Werte invertiert werden (z. B. beim natürlichen Scrollen des Touchpads unter macOS), sollte inverted den Wert true annehmen. Andernfalls lautet inverted false

Das Gerät, von dem das Radereignis stammt, wird durch „ device “ angegeben.

Siehe auch position(), globalPosition(), angleDelta(), pixelDelta(), phase(), inverted() und device().

[protected delete] QWheelEvent::QWheelEvent(QWheelEvent &&)

Erstellt eine Instanz von „ QWheelEvent “ mittels „move-construct“. Diese Funktion wurde gelöscht.

QPoint QWheelEvent::angleDelta() const

Gibt den relativen Drehwinkel des Rads in Achtelgrad zurück. Ein positiver Wert bedeutet, dass das Rad vom Benutzer weg nach vorne gedreht wurde; ein negativer Wert bedeutet, dass das Rad zum Benutzer hin nach hinten gedreht wurde. ` angleDelta().y() ` liefert den Winkel, um den das übliche vertikale Mausrad seit dem letzten Ereignis gedreht wurde. ` angleDelta().x() ` liefert den Winkel, um den das horizontale Mausrad gedreht wurde, sofern die Maus über ein horizontales Rad verfügt; ansonsten bleibt der Wert bei Null. Bei einigen Mäusen kann der Benutzer das Rad neigen, um horizontal zu scrollen, und manche Touchpads unterstützen eine Geste zum horizontalen Scrollen; dies wird ebenfalls in ` angleDelta().x()` angezeigt.

Die meisten Mausmodelle arbeiten in Schritten von 15 Grad; in diesem Fall ist der Delta-Wert ein Vielfaches von 120, d. h. 120 Einheiten * 1/8 = 15 Grad.

Einige Mäuse verfügen jedoch über Räder mit höherer Auflösung und senden Delta-Werte, die kleiner als 120 Einheiten (weniger als 15 Grad) sind. Um diese Möglichkeit zu unterstützen, können Sie entweder die Delta-Werte aus den Ereignissen kumulativ addieren, bis der Wert 120 erreicht ist, und dann das Widget scrollen, oder Sie können das Widget als Reaktion auf jedes Radereignis teilweise scrollen. Um jedoch ein natürlicheres Gefühl zu vermitteln, sollten Sie auf Plattformen, auf denen es verfügbar ist, „ pixelDelta()“ bevorzugen.

Beispiel:

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();
}

Hinweis: Auf Plattformen, die das Scrollen mit ` phases` unterstützen, kann der Delta-Wert null sein, wenn:

  • das Scrollen kurz vor dem Start steht, sich die Entfernung jedoch noch nicht geändert hat (Qt::ScrollBegin),
  • oder das Scrollen beendet ist und sich die Entfernung nicht mehr geändert hat (Qt::ScrollEnd).

Hinweis: Getter -Funktion für die Eigenschaft „angleDelta“.

Siehe auch pixelDelta().

bool QWheelEvent::inverted() const

Gibt zurück, ob die mit dem Ereignis übermittelten Delta-Werte invertiert sind.

Normalerweise erzeugt ein vertikales Rad ein „ QWheelEvent “ mit positiven Delta-Werten, wenn sich die Oberseite des Rads von der Hand wegdreht, die es bedient. Analog dazu erzeugt eine horizontale Radbewegung ein „ QWheelEvent “ mit positiven Delta-Werten, wenn die Oberseite des Rads nach links bewegt wird.

Auf einigen Plattformen ist dies jedoch konfigurierbar, sodass die oben beschriebenen Vorgänge negative Deltawerte (jedoch mit derselben Größe) erzeugen. Mit der Eigenschaft „inverted“ kann ein Empfänger von Radereignissen festlegen, dass er unabhängig von den Systemeinstellungen stets der Richtung des Rads folgt – allerdings nur für bestimmte Widgets. (Ein solcher Anwendungsfall könnte sein, dass der Benutzer das Rad in dieselbe Richtung dreht, in die sich ein visuelles Tumbler-Element dreht. Ein weiterer Anwendungsfall besteht darin, einen Schieberegler-Griff unabhängig von der Systemkonfiguration der Bewegungsrichtung der Finger auf einem Touchpad folgen zu lassen.)

Hinweis: Viele Plattformen stellen keine derartigen Informationen zur Verfügung. Auf solchen Plattformen gibt „inverted“ immer „false“ zurück.

Hinweis: Getter -Funktion für die Eigenschaft „inverted“.

[override virtual] bool QWheelEvent::isBeginEvent() const

Implementiert: ` QSinglePointEvent::isBeginEvent()` const.

Gibt ` true ` zurück, wenn die Methode ` phase()` dieses Ereignisses ` Qt::ScrollBegin` ist.

[override virtual] bool QWheelEvent::isEndEvent() const

Implementiert: ` QSinglePointEvent::isEndEvent()` const.

Gibt ` true ` zurück, wenn die Methode ` phase()` dieses Ereignisses ` Qt::ScrollEnd` ist.

[override virtual] bool QWheelEvent::isUpdateEvent() const

Implementiert: ` QSinglePointEvent::isUpdateEvent()` const.

Gibt ` true ` zurück, wenn die Methode ` phase()` dieses Ereignisses den Wert ` Qt::ScrollUpdate ` oder ` Qt::ScrollMomentum` zurückgibt.

Qt::ScrollPhase QWheelEvent::phase() const

Gibt die Scrollphase dieses Radereignisses zurück.

Hinweis: Die Phasen „ Qt::ScrollBegin “ und „ Qt::ScrollEnd “ werden derzeit nur unter macOS unterstützt.

Hinweis: Getter -Funktion für die Eigenschaft „phase“.

QPoint QWheelEvent::pixelDelta() const

Gibt die Bildlaufdistanz in Pixeln auf dem Bildschirm zurück. Dieser Wert wird auf Plattformen bereitgestellt, die hochauflösende, pixelbasierte Delta-Werte unterstützen, wie beispielsweise macOS. Der Wert sollte direkt zum Bildlaufen von Inhalten auf dem Bildschirm verwendet werden.

Beispiel:

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();
}

Hinweis: Auf Plattformen, die das Scrollen phases unterstützen, kann der Delta-Wert null sein, wenn:

  • das Scrollen gerade beginnt, sich die Entfernung jedoch noch nicht geändert hat (Qt::ScrollBegin),
  • oder das Scrollen beendet ist und sich die Entfernung nicht mehr geändert hat (Qt::ScrollEnd).

Hinweis: Unter X11 ist dieser Wert treiberspezifisch und unzuverlässig; verwenden Sie stattdessen ` angleDelta()`.

Hinweis: Getter -Funktion für die Eigenschaft „pixelDelta“.

[protected delete] QWheelEvent &QWheelEvent::operator=(QWheelEvent &&)

Weist „ other “ dieser „ QWheelEvent “-Instanz zu. Diese Funktion wird gelöscht.

[noexcept protected default] QWheelEvent &QWheelEvent::operator=(const QWheelEvent &other)

other Weist der Instanz „ QWheelEvent “ den Wert „ “ zu.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.