QTabletEvent Class
Die Klasse QTabletEvent enthält Parameter, die ein Tablet-Ereignis beschreiben. Mehr...
Kopfzeile: | #include <QTabletEvent> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbt: | QSinglePointEvent |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Veraltete Mitglieder
- QTabletEvent ist Teil der Ereignis-Klassen.
Ö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 |
Detaillierte Beschreibung
Tablet-Ereignisse werden von Tablet-Peripheriegeräten wie Wacom-Tabletts und verschiedenen anderen Marken sowie von elektromagnetischen Stiftgeräten erzeugt, die in einigen Arten von Tablet-Computern enthalten sind. (Es ist nicht dasselbe wie QTouchEvent, das ein Touchscreen erzeugt, auch wenn ein passiver Stift auf einem Touchscreen verwendet wird).
Tablett-Ereignisse ähneln Maus-Ereignissen; zum Beispiel liefern die Accessoren x(), y(), pos(), globalX(), globalY() und globalPos() die Cursorposition, und Sie können sehen, welche buttons() gedrückt werden (das Drücken der Stiftspitze gegen die Tablettoberfläche entspricht einer linken Maustaste). Aber Tablet-Ereignisse geben auch einige zusätzliche Informationen weiter, die der Tablet-Gerätetreiber bereitstellt; Sie können z. B. Subpixel-Rendering mit höher aufgelösten Koordinaten durchführen (globalPosF()), die Farbhelligkeit anhand der pressure() des Werkzeugs auf der Tablettoberfläche anpassen, unterschiedliche Pinsel je nach Art des verwendeten Werkzeugs verwenden (deviceType()), die Pinselform in Abhängigkeit von der Neigung der X- und Y-Achse des Werkzeugs im Verhältnis zur Tablettoberfläche modulieren (xTilt() und yTilt()) und einen virtuellen Radiergummi anstelle eines Pinsels verwenden, wenn der Benutzer zum anderen Ende eines Stifts mit zwei Enden wechselt (pointerType()).
Jedes Ereignis enthält ein Akzeptanzkennzeichen, das angibt, ob der Empfänger das Ereignis wünscht. Sie sollten QTabletEvent::accept() aufrufen, wenn Sie das Tablet-Ereignis behandeln; andernfalls wird es an das übergeordnete Widget gesendet. Die Ausnahme sind die Ereignisse TabletEnterProximity und TabletLeaveProximity: diese werden nur an QApplication gesendet und es wird nicht geprüft, ob sie akzeptiert werden oder nicht.
Die Funktion QWidget::setEnabled() kann verwendet werden, um Maus-, Tablet- und Tastaturereignisse für ein Widget zu aktivieren oder zu deaktivieren.
Der Event-Handler QWidget::tabletEvent() empfängt die Ereignisse TabletPress, TabletRelease und TabletMove. Qt sendet zuerst ein Tablet-Ereignis und dann, wenn es von keinem Widget akzeptiert wird, ein Maus-Ereignis. Dies ermöglicht es Benutzern von Anwendungen, die nicht für Tablets konzipiert sind, ein Tablet wie eine Maus zu benutzen. Hochauflösende Zeichenanwendungen sollten jedoch die Tablett-Ereignisse verarbeiten, da sie mit einer höheren Frequenz auftreten können, was für ein flüssiges und genaues Zeichnen von Vorteil ist. Wenn die Tablett-Ereignisse abgelehnt werden, können die synthetischen Mausereignisse aus Effizienzgründen komprimiert werden.
Beachten Sie, dass das Drücken der Stifttaste, während der Stift über dem Tablett schwebt, bei einigen Tabletttypen einen Tastendruck erzeugt, während es bei anderen Typen notwendig ist, den Stift gegen die Tablettoberfläche zu drücken, um das gleichzeitige Drücken der Stifttaste zu registrieren.
Hinweise für X11-Benutzer
Wenn das Tablett in 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 und das Touchpad. Qt erkennt diese an ihren Namen. Wenn das Tablett für die Verwendung des evdev-Treibers konfiguriert ist, gibt es nur ein Gerät, und Anwendungen können möglicherweise den Stift nicht vom Radiergummi unterscheiden.
Hinweise für Windows-Benutzer
Die Unterstützung von Tablets erfordert derzeit die Installation des WACOM-Windows-Treibers, der die DLL wintab32.dll
bereitstellt. Sie ist in älteren Paketen enthalten, zum Beispiel pentablet_5.3.5-3.exe
.
Dokumentation der Mitgliedsfunktionen
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)
Konstruiert ein Tablett-Ereignis mit dem angegebenen type.
Der Parameter pos gibt an, wo das Ereignis im Widget aufgetreten ist; globalPos ist die entsprechende Position in absoluten Koordinaten.
pressure gibt den Druck an, der auf das Gerät dev ausgeübt wird.
xTilt und yTilt geben den Grad der Neigung des Geräts gegenüber der x- bzw. y-Achse an.
keyState gibt an, welche Tastaturmodifikatoren gedrückt werden (z. B. Ctrl).
Der Parameter z gibt die Z-Koordinate des Geräts auf dem Tablett an; diese wird in der Regel durch ein Rad an einer 4D-Maus angegeben. 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 für den tangentialen Druck des Daumenrads einer Airbrush 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 Rotation. Wenn das Gerät die Drehung nicht unterstützt (d. h. QPointingDevice::capabilities() enthält nicht Rotation
), übergeben Sie hier 0
.
Das button, das das Ereignis ausgelöst hat, wird als Wert aus dem Qt::MouseButton enum angegeben. Wenn das Ereignis type nicht TabletPress oder TabletRelease ist, ist 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().
qreal QTabletEvent::pressure() const
Gibt den Druck für das Gerät zurück. 0.0 zeigt an, dass der Stift nicht auf dem Tablett liegt, 1.0 zeigt den maximalen Druck des Stifts an.
Siehe auch tangentialPressure().
qreal QTabletEvent::rotation() const
Gibt die Drehung des aktuellen Werkzeugs in Grad zurück, wobei Null bedeutet, dass die Stiftspitze nach oben auf das Tablett zeigt, ein positiver Wert bedeutet, dass sie nach rechts gedreht ist, und ein negativer Wert, dass sie nach links gedreht ist. Dies kann durch eine 4D Maus oder einen rotationsfähigen Stift (wie den Wacom Art Pen oder den Apple Pencil) gegeben sein. Wenn das Gerät keine Rotation unterstützt, ist dieser Wert immer 0,0.
qreal QTabletEvent::tangentialPressure() const
Gibt den tangentialen Druck für das Gerät zurück. Dieser wird in der Regel durch ein Fingerrad an einem Airbrush-Werkzeug angegeben. Der Bereich reicht von -1,0 bis 1,0. 0,0 steht für eine neutrale Position. Aktuelle Airbrushes können sich von der neutralen Position aus nur in die positive Richtung bewegen. Wenn das Gerät keinen tangentialen Druck unterstützt, ist dieser Wert immer 0,0.
Hinweis: Der Wert wird als Gleitkommazahl 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 sind in Richtung der physischen Rechten des Tabletts. Der Winkel liegt im Bereich von -60 bis +60 Grad.
Hinweis: Der Wert wird als einfach genaue Fließkommazahl 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 zeigen in Richtung der Unterseite des Tabletts. Der Winkel liegt im Bereich von -60 bis +60 Grad.
Hinweis: Der Wert wird als einfach präziser Float gespeichert.
Siehe auch xTilt().
qreal QTabletEvent::z() const
Gibt die z-Position des Geräts zurück. Normalerweise wird dies durch ein Rad auf einer 4D-Maus dargestellt. Wenn das Gerät keine Z-Achse unterstützt, ist dieser Wert immer Null. Dies ist nicht dasselbe wie der Druck.
Hinweis: Der Wert wird als einfach präziser Float gespeichert.
Siehe auch pressure().
© 2025 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.