MultiPointTouchArea QML Type
Ermöglicht den Umgang mit mehreren Berührungspunkten. Mehr...
Import Statement: | import QtQuick |
Inherits: |
Eigenschaften
- maximumTouchPoints : int
- minimumTouchPoints : int
- mouseEnabled : bool
- touchPoints : list<TouchPoint>
Signale
- canceled(list<TouchPoint> touchPoints)
- gestureStarted(GestureEvent gesture)
- pressed(list<TouchPoint> touchPoints)
- released(list<TouchPoint> touchPoints)
- touchUpdated(list<TouchPoint> touchPoints)
- updated(list<TouchPoint> touchPoints)
Detaillierte Beschreibung
Ein MultiPointTouchArea ist ein unsichtbares Element, das zur Verfolgung mehrerer Berührungspunkte verwendet wird.
Die Eigenschaft Item::enabled wird verwendet, um die Berührungsbehandlung zu aktivieren und zu deaktivieren. Wenn sie deaktiviert ist, wird der Berührungsbereich für Maus- und Berührungsereignisse transparent.
Standardmäßig wird die Maus wie ein einzelner Berührungspunkt behandelt, und Elemente unter dem Berührungsbereich erhalten keine Mausereignisse, da der Berührungsbereich sie behandelt. Wenn jedoch die Eigenschaft mouseEnabled auf false gesetzt wird, wird sie für Mausereignisse transparent, so dass ein anderes mausempfindliches Element (z. B. MouseArea) verwendet werden kann, um Mausinteraktionen separat zu behandeln.
MultiPointTouchArea kann auf zwei Arten verwendet werden:
- Einstellung von
touchPoints
zur Bereitstellung von Berührungspunktobjekten mit Eigenschaften, an die gebunden werden kann - mit Hilfe der onTouchUpdated oder onPressed, onUpdated und onReleased Handler
Während ein MultiPointTouchArea exklusiv für bestimmte Berührungspunkte zuständig sein kann, ist es auch möglich, mehrere MultiPointTouchAreas gleichzeitig aktiv zu haben, von denen jedes auf eine andere Gruppe von Berührungspunkten wirkt.
Siehe auch TouchPoint.
Eigenschaft Dokumentation
Diese Eigenschaften geben den Bereich der Berührungspunkte an, die vom Berührungsbereich verarbeitet werden sollen.
So können Sie z. B. verschachtelte MultiPointTouchAreas haben, von denen einer zwei Fingerberührungen und ein anderer drei Fingerberührungen verarbeitet.
Standardmäßig werden alle Berührungspunkte innerhalb des Berührungsbereichs behandelt.
Wenn mouseEnabled wahr ist, fungiert die Maus als Berührungspunkt und unterliegt daher ebenfalls diesen Einschränkungen: Wenn maximumTouchPoints beispielsweise zwei ist, können Sie die Maus als einen Berührungspunkt und einen Finger als weiteren Berührungspunkt verwenden, also insgesamt zwei.
mouseEnabled : bool |
Diese Eigenschaft steuert, ob MultiPointTouchArea auch Mausereignisse verarbeiten soll. Ist sie true (Standardeinstellung), behandelt der Berührungsbereich die Maus wie einen einzelnen Berührungspunkt; ist sie false, ignoriert der Berührungsbereich Mausereignisse und lässt sie "durch", so dass sie von anderen Elementen darunter behandelt werden können.
touchPoints : list<TouchPoint> |
Diese Eigenschaft enthält einen Satz von benutzerdefinierten Berührungspunktobjekten, an die gebunden werden kann.
Wenn mouseEnabled wahr ist (Standardeinstellung) und die linke Maustaste gedrückt wird, während sich die Maus über dem Berührungsbereich befindet, wird die aktuelle Mausposition einer dieser Berührungspunkte sein.
Im folgenden Beispiel haben wir zwei kleine Rechtecke, die unseren Berührungspunkten folgen.
import QtQuick Rectangle { width: 400; height: 400 MultiPointTouchArea { anchors.fill: parent touchPoints: [ TouchPoint { id: point1 }, TouchPoint { id: point2 } ] } Rectangle { width: 30; height: 30 color: "green" x: point1.x y: point1.y } Rectangle { width: 30; height: 30 color: "yellow" x: point2.x y: point2.y } }
Standardmäßig enthält diese Eigenschaft eine leere Liste.
Siehe auch TouchPoint.
Signal Dokumentation
canceled(list<TouchPoint> touchPoints) |
Dieses Signal wird ausgegeben, wenn neue Berührungsereignisse abgebrochen wurden, weil ein anderes Element die Behandlung von Berührungsereignissen gestohlen hat.
Dieses Signal ist für den fortgeschrittenen Gebrauch gedacht: Es ist nützlich, wenn es mehr als ein MultiPointTouchArea gibt, das Eingaben verarbeitet, oder wenn es ein MultiPointTouchArea innerhalb eines Flickable gibt. Im letzteren Fall, wenn Sie eine Logik im onPressed
Signalhandler ausführen und dann mit dem Ziehen beginnen, kann das Flickable die Berührungsbehandlung vom MultiPointTouchArea stehlen. In diesen Fällen, um die Logik zurückzusetzen, wenn das MultiPointTouchArea die Berührungsbehandlung an das Flickable verloren hat, sollte canceled
zusätzlich zu released behandelt werden.
touchPoints ist die Liste der abgebrochenen Punkte.
Hinweis: Wenn Sie das Argument touchPoints
in Ihrem Signalhandler-Code verwenden, sollten Sie es in Ihrem formalen Parameter umbenennen, um Verwechslungen mit der Eigenschaft touchPoints
zu vermeiden (siehe QML-Codierungskonventionen):
onCanceled: (points) => console.log("canceled", points.length)
Hinweis: Der entsprechende Handler ist onCanceled
.
gestureStarted(GestureEvent gesture) |
Dieses Signal wird ausgegeben, wenn der globale Schwellenwert für das Ziehen erreicht wurde.
Dieses Signal wird typischerweise verwendet, wenn ein MultiPointTouchArea in ein Flickable oder ein anderes MultiPointTouchArea verschachtelt wurde. Wenn der Schwellenwert erreicht ist und das Signal verarbeitet wird, können Sie bestimmen, ob der Berührungsbereich die aktuellen Berührungspunkte erfassen soll oder nicht. Standardmäßig werden sie nicht gegriffen; um sie zu greifen, rufen Sie gesture.grab()
auf. Wenn die Geste nicht gegriffen wird, hätte z. B. das verschachtelte Flickable ebenfalls die Möglichkeit, zu greifen.
Das Objekt gesture enthält auch Informationen über den aktuellen Satz von touchPoints
und den dragThreshold
.
Hinweis: Der entsprechende Handler ist onGestureStarted
.
pressed(list<TouchPoint> touchPoints) |
Dieses Signal wird ausgesendet, wenn neue Berührungspunkte hinzugefügt werden. touchPoints ist eine Liste dieser neuen Punkte.
Wenn minimumTouchPoints auf einen Wert größer als eins gesetzt ist, wird dieses Signal erst ausgegeben, wenn die Mindestanzahl der erforderlichen Berührungspunkte erreicht ist.
Hinweis: Wenn Sie das Argument touchPoints
in Ihrem Signal-Handler-Code verwenden, benennen Sie es am besten in Ihrem formalen Parameter um, um Verwechslungen mit der Eigenschaft touchPoints
zu vermeiden (siehe QML Coding Conventions):
onPressed: (points) => console.log("pressed", points.length)
Hinweis: Der entsprechende Handler ist onPressed
.
released(list<TouchPoint> touchPoints) |
Dieses Signal wird ausgegeben, wenn vorhandene Berührungspunkte entfernt werden. touchPoints ist eine Liste dieser entfernten Punkte.
Hinweis: Wenn Sie das Argument touchPoints
in Ihrem Signal-Handler-Code verwenden, benennen Sie es am besten in Ihrem formalen Parameter um, um Verwechslungen mit der Eigenschaft touchPoints
zu vermeiden (siehe QML Coding Conventions):
onReleased: (points) => console.log("released", points.length)
Hinweis: Der entsprechende Handler ist onReleased
.
touchUpdated(list<TouchPoint> touchPoints) |
Dieses Signal wird ausgegeben, wenn sich die von MultiPointTouchArea behandelten Berührungspunkte ändern. Dies beinhaltet das Hinzufügen neuer Berührungspunkte, das Entfernen oder Abbrechen vorheriger Berührungspunkte sowie das Aktualisieren der aktuellen Berührungspunktdaten. touchPoints ist die Liste aller aktuellen Berührungspunkte.
Hinweis: Der entsprechende Handler ist onTouchUpdated
.
updated(list<TouchPoint> touchPoints) |
Dieses Signal wird ausgegeben, wenn vorhandene Berührungspunkte aktualisiert werden. touchPoints ist eine Liste dieser aktualisierten Punkte.
Hinweis: Wenn Sie das Argument touchPoints
in Ihrem Signalhandler-Code verwenden, benennen Sie es am besten in Ihrem formalen Parameter um, um Verwechslungen mit der Eigenschaft touchPoints
zu vermeiden (siehe QML-Codierungskonventionen):
onUpdated: (points) => console.log("updated", points.length)
Hinweis: Der entsprechende Handler ist onUpdated
.
© 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.