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