Тип QML MultiPointTouchArea
Обеспечивает обработку нескольких точек касания. Подробнее...
| Заявление импорта: | import QtQuick 2.13 |
| Наследует: |
Свойства
- 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.
Документация по свойствам
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(touchPoints)
Этот сигнал излучается, когда новые события касания были отменены, потому что другой элемент захватил обработку события касания.
Этот сигнал предназначен для расширенного использования: он полезен, когда существует более одного MultiPointTouchArea, обрабатывающего ввод, или когда MultiPointTouchArea находится внутри Flickable. В последнем случае, если вы выполните какой-либо логический блок в обработчике сигнала onPressed и затем начнете перетаскивание, Flickable может захватить обработку касания от MultiPointTouchArea. В этих случаях для сброса логики, когда MultiPointTouchArea потерял обработку касания в пользу Flickable, необходимо обработать canceled, в дополнение к released.
touchPoints — список отмененных точек.
Соответствующий обработчик — onCanceled.
gestureStarted(gesture)
Этот сигнал излучается, когда порог глобального перетаскивания достигнут.
Этот сигнал обычно используется, когда MultiPointTouchArea вложен в Flickable или другой MultiPointTouchArea. Когда порог достигнут и сигнал обработан, вы можете определить, захватывать ли области касания текущие точки касания. По умолчанию они не захватываются; для их захвата вызовите gesture.grab(). Если жест не захвачен, вложенный, например, Flickable, тоже имеет возможность захвата.
Объект жеста также содержит информацию о текущем наборе 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.13/qml-qtquick-multipointtoucharea.html