Тип QML MultiPointTouchArea
Обеспечивает обработку нескольких точек касания. Подробнее...
| Заявление об импорте: | import QtQuick 2.14 |
| Наследует: |
Свойства
- maximumTouchPoints : int
- minimumTouchPoints : int
- mouseEnabled : bool
- touchPoints : список<TouchPoint>
Сигналы
- canceled(touchPoints)
- gestureStarted(gesture)
- pressed(touchPoints)
- released(touchPoints)
- touchUpdated(touchPoints)
- updated(touchPoints)
Подробное описание
MultiPointTouchArea — это невидимый элемент, используемый для отслеживания нескольких точек касания.
Свойство Item::enabled используется для включения и выключения обработки касаний. При отключении область касания становится прозрачной для событий мыши и касания.
По умолчанию мышь обрабатывается так же, как и одиночная точка касания, и элементы под областью касания не получают событий мыши, поскольку область касания их обрабатывает. Но если свойство mouseEnabled установлено в false, оно становится прозрачным для событий мыши, так что другую чувствительную к мыши область (например, MouseArea) можно использовать для обработки взаимодействия с мышью отдельно.
MultiPointTouchArea можно использовать двумя способами:
- установив
touchPointsдля предоставления объектам точек касания свойств, к которым можно привязаться - используя обработчики onTouchUpdated или onPressed, onUpdated и onReleased
Хотя MultiPointTouchArea может и захватить исключительное владение определёнными точками касания, также возможно иметь несколько активных MultiPointTouchAreas одновременно, каждое из которых работает с различным набором точек касания.
См. также TouchPoint.
Документация по свойствам
maximumTouchPoints : int
Эти свойства определяют диапазон точек касания, обрабатываемых областью касания.
Это удобные свойства, которые позволяют, например, иметь вложенные MultiPointTouchAreas, одно из которых обрабатывает прикосновения двумя пальцами, а другое — тремя пальцами.
По умолчанию обрабатываются все точки касания в области касания.
Если mouseEnabled истинно, мышь действует как точка касания, поэтому она также подчиняется этим ограничениям: например, если maximumTouchPoints равно двум, вы можете использовать мышь как одну точку касания и палец как другую точку касания для общего количества двух.
mouseEnabled : bool
Это свойство управляет тем, будет ли MultiPointTouchArea обрабатывать события мыши также. Если оно истинно (по умолчанию), область касания будет рассматривать мышь так же, как одиночную точку касания; если оно ложно, область касания будет игнорировать события мыши и позволит им «проходить сквозь», чтобы они могли обрабатываться другими элементами под ними.
touchPoints : список<TouchPoint>
Это свойство содержит набор определенных пользователем объектов точек касания, к которым можно привязаться.
Если mouseEnabled истинно (по умолчанию) и нажата левая кнопка мыши, когда курсор мыши находится над областью касания, текущие координаты мыши будут одной из этих точек касания.
В следующем примере у нас есть два небольших прямоугольника, которые следуют за нашими точками касания.
import QtQuick 2.0
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
}
} По умолчанию это свойство содержит пустой список.
См. также TouchPoint.
Документация по сигналам
canceled(touchPoints)
Этот сигнал генерируется, когда новые события касания были отменены, потому что другой элемент украл обработку события касания.
Этот сигнал предназначен для расширенного использования: он полезен, когда имеется более одного MultiPointTouchArea, который обрабатывает ввод, или когда имеется MultiPointTouchArea внутри Flickable. В последнем случае, если вы выполните какой-то логический блок в обработчике сигнала onPressed и затем начнете перетаскивание, Flickable может украсть обработку касания от MultiPointTouchArea. В этих случаях, чтобы сбросить логику, когда MultiPointTouchArea потерял обработку касания для Flickable, canceled должен обрабатываться дополнительно к released.
touchPoints — это список отменённых точек.
Соответствующий обработчик — onCanceled.
gestureStarted(gesture)
Этот сигнал генерируется, когда глобальный порог перетаскивания достигнут.
Этот сигнал обычно используется, когда MultiPointTouchArea был вложен в Flickable или другой MultiPointTouchArea. Когда порог достигнут и сигнал обработано, вы можете определить, должен ли touch area захватывать текущие точки касания. По умолчанию они не будут захвачены; чтобы захватить их, вызовите gesture.grab(). Если жест не захвачен, у вложенного Flickable, например, также будет возможность захвата.
Объект gesture также содержит информацию о текущем наборе touchPoints и dragThreshold.
Соответствующий обработчик — onGestureStarted.
pressed(touchPoints)
Этот сигнал генерируется, когда добавляются новые точки касания. touchPoints — это список этих новых точек.
Если minimumTouchPoints установлено в значение, большее единицы, этот сигнал не будет сгенерирован, пока не будет достигнуто минимальное необходимое количество точек касания.
Соответствующий обработчик — onPressed.
released(touchPoints)
Этот сигнал генерируется, когда удаляются существующие точки касания. touchPoints — это список этих удаленных точек.
Соответствующий обработчик — onReleased.
touchUpdated(touchPoints)
Этот сигнал генерируется, когда точки касания, обрабатываемые MultiPointTouchArea, изменяются. Это включает добавление новых точек касания, удаление или отмену предыдущих точек касания, а также обновление данных текущих точек касания. touchPoints — это список всех текущих точек касания.
Соответствующий обработчик — onTouchUpdated.
updated(touchPoints)
Этот сигнал генерируется, когда обновляются существующие точки касания. touchPoints — это список этих обновлённых точек.
Соответствующий обработчик — onUpdated.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtquick-multipointtoucharea.html