Auf dieser Seite

QTabletEvent Class

Die Klasse „QTabletEvent“ enthält Parameter, die ein Tablet-Ereignis beschreiben. Mehr...

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

Öffentliche Funktionen

QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)
qreal pressure() const
qreal rotation() const
qreal tangentialPressure() const
qreal xTilt() const
qreal yTilt() const
qreal z() const

Geschützte Funktionen

QTabletEvent(QTabletEvent &&)
QTabletEvent &operator=(QTabletEvent &&)
QTabletEvent &operator=(const QTabletEvent &other)

Ausführliche Beschreibung

Tablet-Ereignisse werden von Tablet-Peripheriegeräten wie Wacom-Tablets und verschiedenen anderen Marken sowie von elektromagnetischen Stiftgeräten erzeugt, die bei einigen Tablet-Computer-Modellen im Lieferumfang enthalten sind. (Dies ist nicht dasselbe wie „ QTouchEvent “, die von einem Touchscreen erzeugt werden, selbst wenn ein passiver Stift auf einem Touchscreen verwendet wird.)

Tablet-Ereignisse ähneln Mausereignissen; beispielsweise liefern die Zugriffsmethoden „ x()“, „ y()“, „ pos()“, „ globalX()“, „ globalY()“ und „ globalPos()“ die Cursorposition, und Sie können erkennen, welche „ buttons()“ gedrückt werden (das Aufdrücken der Stiftspitze auf die Tablet-Oberfläche entspricht einem Klick mit der linken Maustaste). Tablet-Ereignisse übermitteln jedoch auch zusätzliche Informationen, die der Tablet-Gerätetreiber bereitstellt; beispielsweise möchten Sie vielleicht ein Subpixel-Rendering mit Koordinaten höherer Auflösung durchführen (globalPosF()), die Farbhelligkeit basierend auf dem pressure() des Werkzeugs gegenüber der Tablet-Oberfläche anpassen, je nach verwendetem Werkzeugtyp unterschiedliche Pinsel einsetzen (deviceType()), die Pinselform in gewisser Weise entsprechend der Neigung des Werkzeugs um die X- und Y-Achse gegenüber der Tablet-Oberfläche modulieren (xTilt() und yTilt()), sowie einen virtuellen Radierer anstelle eines Pinsels verwenden, wenn der Benutzer auf das andere Ende eines doppelseitigen Stifts wechselt (pointerType()).

Jedes Ereignis enthält ein Akzeptanzflag, das angibt, ob der Empfänger das Ereignis annehmen möchte. Sie sollten ` QTabletEvent::accept()` aufrufen, wenn Sie das Tablet-Ereignis verarbeiten; andernfalls wird es an das übergeordnete Widget weitergeleitet. Eine Ausnahme bilden die Ereignisse `TabletEnterProximity` und `TabletLeaveProximity`: Diese werden ausschließlich an ` QApplication ` gesendet und es wird nicht geprüft, ob sie akzeptiert werden oder nicht.

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

Der Ereignis-Handler ` QWidget::tabletEvent()` empfängt die Ereignisse `TabletPress`, `TabletRelease` und `TabletMove`. Qt sendet zunächst ein Tablet-Ereignis; wird dieses von keinem Widget akzeptiert, sendet Qt anschließend ein Mausereignis. Dadurch können Benutzer von Anwendungen, die nicht für Tablets konzipiert sind, ein Tablet wie eine Maus verwenden. Hochauflösende Zeichenanwendungen sollten die Tablet-Ereignisse jedoch verarbeiten, da diese mit einer höheren Frequenz auftreten können, was für flüssiges und präzises Zeichnen von Vorteil ist. Werden die Tablet-Ereignisse abgelehnt, können die synthetischen Mausereignisse aus Effizienzgründen komprimiert werden.

Beachten Sie, dass das Drücken der Stift-Taste, während der Stift über dem Tablet schwebt, bei einigen Tablet-Typen einen Tastendruck auslöst, während es bei anderen Typen erforderlich ist, den Stift gegen die Tablet-Oberfläche zu drücken, um den gleichzeitigen Tastendruck zu registrieren.

Hinweise für X11-Benutzer

Wenn das Tablet in der Datei „xorg.conf“ für die Verwendung des Wacom-Treibers konfiguriert ist, gibt es separate XInput-„Geräte“ für den Stift, den Radierer und (optional) den Cursor sowie das Touchpad. Qt erkennt diese anhand ihrer Namen. Ist das Tablet hingegen für die Verwendung des evdev-Treibers konfiguriert, gibt es nur ein Gerät, und Anwendungen können den Stift möglicherweise nicht vom Radierer unterscheiden.

Hinweise für Windows-Benutzer

Für die Tablet-Unterstützung muss derzeit der WACOM-Windows-Treiber installiert sein, der die DLL „ wintab32.dll “ bereitstellt. Diese ist in älteren Paketen enthalten, zum Beispiel unter pentablet_5.3.5-3.exe.

Dokumentation zu den Member-Funktionen

QTabletEvent::QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)

Erstelle ein Tablet-Ereignis für die angegebene „ type “.

Der Parameter ` pos ` gibt an, wo das Ereignis im Widget aufgetreten ist; ` globalPos ` ist die entsprechende Position in absoluten Koordinaten.

pressure gibt den auf das Gerät ausgeübten Druck an: ` dev`.

xTilt und yTilt geben den Neigungswinkel des Geräts zur x- bzw. y-Achse an.

keyState Gibt an, welche Tastaturmodifikatoren gedrückt sind (z. B. Ctrl).

Der Parameter ` z ` gibt die Z-Koordinate des Geräts auf dem Tablet an; diese wird üblicherweise durch ein Rad an einer 4D-Maus ermittelt. Wenn das Gerät keine Z-Achse unterstützt (d. h. ` QPointingDevice::capabilities()` enthält nicht ` ZPosition`), übergeben Sie hier ` 0 `.

Der Parameter „ tangentialPressure “ gibt den Wert des Daumenrads für den tangentialen Druck eines Airbrushs an. Wenn das Gerät keinen tangentialen Druck unterstützt (d. h. QPointingDevice::capabilities() enthält nicht TangentialPressure), übergeben Sie hier 0.

rotation Gibt die Drehung des Geräts in Grad an. 4D-Mäuse, der Wacom Art Pen und der Apple Pencil unterstützen die Drehung. Wenn das Gerät die Drehung nicht unterstützt (d. h. QPointingDevice::capabilities() enthält nicht Rotation), übergeben Sie hier 0.

Der button, der das Ereignis ausgelöst hat, wird als Wert aus der Enumeration Qt::MouseButton angegeben. Wenn das Ereignis type nicht TabletPress oder TabletRelease ist, lautet die entsprechende Schaltfläche für dieses Ereignis Qt::NoButton.

buttons ist der Zustand aller Schaltflächen zum Zeitpunkt des Ereignisses.

Siehe auch „ pos()“, „ globalPos()“, „ device()“, „ pressure()“, „ xTilt()“, „ yTilt()“, „ uniqueId()“, „ rotation()“, „ tangentialPressure()“ und „ z()“.

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

Erstellt eine Instanz von „ QTabletEvent “. Diese Funktion wird gelöscht.

qreal QTabletEvent::pressure() const

Gibt den Druck für das Gerät zurück. 0,0 bedeutet, dass der Stift nicht auf dem Tablet aufliegt, 1,0 gibt den maximalen Druck des Stifts an.

Siehe auch tangentialPressure().

qreal QTabletEvent::rotation() const

Gibt die Drehung des aktuellen Werkzeugs in Grad zurück, wobei der Wert Null bedeutet, dass die Spitze des Stifts zur Oberseite des Tablets zeigt, ein positiver Wert bedeutet, dass er nach rechts gedreht ist, und ein negativer Wert bedeutet, dass er nach links gedreht ist. Dieser Wert kann von einer 4D-Maus oder einem rotationsfähigen Stift (wie dem Wacom Art Pen oder dem Apple Pencil) bereitgestellt werden. Wenn das Gerät keine Rotation unterstützt, ist dieser Wert immer 0,0.

qreal QTabletEvent::tangentialPressure() const

Gibt den Tangentialdruck für das Gerät zurück. Dieser wird in der Regel über ein Daumenrad an einem Airbrush-Werkzeug eingestellt. Der Bereich reicht von -1,0 bis 1,0. 0,0 entspricht der Neutralstellung. Aktuelle Airbrush-Geräte können sich von der neutralen Position aus nur in positiver Richtung bewegen. Wenn das Gerät keinen tangentialen Druck unterstützt, ist dieser Wert immer 0,0.

Hinweis: Der Wert wird als Float-Wert mit einfacher Genauigkeit gespeichert.

Siehe auch „ pressure()“.

qreal QTabletEvent::xTilt() const

Gibt den Winkel zwischen dem Gerät (z. B. einem Stift) und der Senkrechten in Richtung der x-Achse zurück. Positive Werte weisen zur physikalischen rechten Seite des Tablets hin. Der Winkel liegt im Bereich von -60 bis +60 Grad.

Darstellung eines Geräts, das in einem dreidimensionalen Koordinatensystem geneigt ist

Hinweis: Der Wert wird als Float-Wert mit einfacher Genauigkeit gespeichert.

Siehe auch ` yTilt()`.

qreal QTabletEvent::yTilt() const

Gibt den Winkel zwischen dem Gerät (z. B. einem Stift) und der Senkrechten in Richtung der y-Achse zurück. Positive Werte weisen zur Unterseite des Tablets hin. Der Winkel liegt im Bereich von -60 bis +60 Grad.

Hinweis: Der Wert wird als Float-Wert mit einfacher Genauigkeit gespeichert.

Siehe auch „ xTilt()“.

qreal QTabletEvent::z() const

Gibt die Z-Position des Geräts zurück. Bei einer 4D-Maus wird diese in der Regel durch ein Rädchen dargestellt. Wenn das Gerät keine Z-Achse unterstützt, ist dieser Wert immer Null. Dies ist nicht mit dem Druck zu verwechseln.

Hinweis: Der Wert wird als Float-Wert mit einfacher Genauigkeit gespeichert.

Siehe auch ` pressure()`.

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

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

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

other Weist dieser Instanz von „ QTabletEvent “ den Wert „ “ zu. zu dieser Instanz von „ “ 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.