MultiPointTouchArea QML Type
Ermöglicht die Verarbeitung mehrerer Berührungspunkte. 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)
Ausführliche Beschreibung
Ein „MultiPointTouchArea“ ist ein unsichtbares Element, das zur Erfassung mehrerer Berührungspunkte dient.
Die Eigenschaft „ Item::enabled “ dient zum Aktivieren und Deaktivieren der Touch-Verarbeitung. Bei Deaktivierung wird der Touch-Bereich für Maus- und Touch-Ereignisse transparent.
Standardmäßig wird die Maus wie ein einzelner Berührungspunkt behandelt, und Elemente unterhalb des Berührungsbereichs erhalten keine Mausereignisse, da diese vom Berührungsbereich verarbeitet werden. Wird die Eigenschaft „ mouseEnabled “ jedoch auf „false“ gesetzt, wird der Bereich für Mausereignisse transparent, sodass ein anderes mausempfindliches Element (z. B. ein „ MouseArea “) verwendet werden kann, um die Mausinteraktion separat zu verarbeiten.
„MultiPointTouchArea“ kann auf zwei Arten verwendet werden:
- durch Setzen von `
touchPoints`, um Touch-Point-Objekte mit Eigenschaften bereitzustellen, die an - die Handler `onTouchUpdated` oder `onPressed`, `onUpdated` und `onReleased`
Zwar kann ein „MultiPointTouchArea“-Element die ausschließliche Kontrolle über bestimmte Berührungspunkte übernehmen, es ist jedoch auch möglich, mehrere „MultiPointTouchArea“-Elemente gleichzeitig aktiv zu haben, von denen jedes auf einen anderen Satz von Berührungspunkten wirkt.
Siehe auch „ TouchPoint “.
Dokumentation zu den Eigenschaften
Diese Eigenschaften enthalten den Bereich der Berührungspunkte, die von der Touch-Fläche verarbeitet werden sollen.
Dies sind Hilfsfunktionen, die es Ihnen beispielsweise ermöglichen, verschachtelte „MultiPointTouchAreas“ zu verwenden, von denen eine Zwei-Finger-Berührungen und eine andere Drei-Finger-Berührungen verarbeitet.
Standardmäßig werden alle Berührungspunkte innerhalb des Berührungsbereichs verarbeitet.
Wenn „ mouseEnabled “ auf „true“ gesetzt ist, fungiert die Maus als Berührungspunkt und unterliegt somit ebenfalls diesen Einschränkungen: Wenn beispielsweise „ maximumTouchPoints “ den Wert „2“ hat, können Sie die Maus als einen Berührungspunkt und einen Finger als weiteren Berührungspunkt verwenden, was insgesamt zwei ergibt.
mouseEnabled : bool
Diese Eigenschaft legt fest, ob der „ MultiPointTouchArea “ auch Mausereignisse verarbeitet. Ist der Wert „true“ (Standardeinstellung), behandelt der Touch-Bereich die Maus wie einen einzelnen Berührungspunkt; ist der Wert „false“, ignoriert der Touch-Bereich Mausereignisse und lässt sie „durchgehen“, sodass sie von anderen darunterliegenden Elementen verarbeitet werden können.
touchPoints : list<TouchPoint> [read-only]
Diese Eigenschaft enthält eine Reihe von benutzerdefinierten Berührungspunkt-Objekten, an die eine Bindung erfolgen kann.
Wenn „ mouseEnabled “ auf „true“ gesetzt ist (Standardeinstellung) und die linke Maustaste gedrückt wird, während sich der Mauszeiger über dem Berührungsbereich befindet, wird die aktuelle Mausposition zu einem dieser Berührungspunkte.
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 Touch-Ereignisse abgebrochen wurden, weil ein anderes Element die Verarbeitung des Touch-Ereignisses übernommen hat.
Dieses Signal ist für fortgeschrittene Anwendungen gedacht: Es ist nützlich, wenn mehr als ein „ MultiPointTouchArea “ die Eingabe verarbeitet oder wenn sich ein „ MultiPointTouchArea “ innerhalb eines „ Flickable “ befindet. Im letzteren Fall kann es vorkommen, dass, wenn Sie im Signal-Handler „ onPressed “ eine Logik ausführen und dann mit dem Ziehen beginnen, der „ Flickable “ die Touch-Verarbeitung vom „ MultiPointTouchArea “ übernimmt. In diesen Fällen sollte zusätzlich zu „ released “ auch „ canceled “ verarbeitet werden, um die Logik zurückzusetzen, wenn der „ MultiPointTouchArea “ die Touch-Verarbeitung an den „ Flickable “ verloren hat.
touchPoints ist die Liste der abgebrochenen Punkte.
Hinweis: Wenn Sie das Argument „ touchPoints “ in Ihrem Signal-Handler-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 ausgelöst, wenn der globale Drag-Schwellenwert erreicht wurde.
Dieses Signal wird typischerweise verwendet, wenn ein „ MultiPointTouchArea “ in einem „Flickable“ oder einem anderen „ MultiPointTouchArea “ verschachtelt wurde. Wenn der Schwellenwert erreicht wurde und das Signal verarbeitet wird, können Sie festlegen, ob der Touch-Bereich die aktuellen Berührungspunkte erfassen soll oder nicht. Standardmäßig werden sie nicht erfasst; um sie zu erfassen, rufen Sie „ gesture.grab() “ auf. Wird die Geste nicht erfasst, hätte beispielsweise das verschachtelte „Flickable“ ebenfalls die Möglichkeit, sie zu erfassen.
Das „ gesture “-Objekt enthält außerdem Informationen über die aktuellen „ touchPoints “ sowie den „ dragThreshold “.
Hinweis: Der entsprechende Handler ist „ onGestureStarted “.
pressed(list<TouchPoint> touchPoints)
Dieses Signal wird ausgelöst, 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 ausgelöst, wenn die Mindestanzahl der erforderlichen Berührungspunkte erreicht ist.
Hinweis: Wenn Sie das Argument „ touchPoints “ in Ihrem Signal-Handler-Code verwenden, sollten Sie es in Ihrem formalen Parameter umbenennen, um Verwechslungen mit der Eigenschaft „ touchPoints “ zu vermeiden (siehe QML-Codierungskonventionen):
onPressed: (points) => console.log("pressed", points.length)Hinweis: Der entsprechende Handler lautet „ onPressed “.
released(list<TouchPoint> touchPoints)
Dieses Signal wird ausgelöst, wenn vorhandene Touch-Punkte entfernt werden. „ touchPoints “ ist eine Liste dieser entfernten Punkte.
Hinweis: Wenn Sie das Argument „ touchPoints “ in Ihrem Signal-Handler-Code verwenden, sollten Sie es in Ihrem formalen Parameter umbenennen, um Verwechslungen mit der Eigenschaft „ touchPoints “ zu vermeiden (siehe QML-Codierungskonventionen):
onReleased: (points) => console.log("released", points.length)Hinweis: Der entsprechende Handler lautet „ onReleased “.
touchUpdated(list<TouchPoint> touchPoints)
Dieses Signal wird ausgelöst, wenn sich die vom MultiPointTouchArea verwalteten Touch-Punkte ändern. Dazu gehören das Hinzufügen neuer Touch-Punkte, das Entfernen oder Abbrechen bestehender Touch-Punkte sowie die Aktualisierung der Daten aktueller Touch-Punkte. touchPoints ist die Liste aller aktuellen Touch-Punkte.
Hinweis: Der entsprechende Handler ist „ onTouchUpdated “.
updated(list<TouchPoint> touchPoints)
Dieses Signal wird ausgelöst, wenn vorhandene Berührungspunkte aktualisiert werden. „ touchPoints “ ist eine Liste dieser aktualisierten Punkte.
Hinweis: Wenn Sie das Argument „ touchPoints “ in Ihrem Signal-Handler-Code verwenden, sollten Sie es in Ihrem formalen Parameter umbenennen, um Verwechslungen mit der Eigenschaft „ touchPoints “ zu vermeiden (siehe QML-Codierungskonventionen):
onUpdated: (points) => console.log("updated", points.length)Hinweis: Der entsprechende Handler lautet „ onUpdated “.
© 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.