Тип QML MultiPointHandler
Абстрактный обработчик событий Pointer Events для нескольких точек. Подробнее...
| Заявление об импорте: | import QtQuick 2.13 |
| С момента: | Qt 5.10 |
| Наследует: | |
| Наследуется от: |
Свойства
- acceptedButtons : flags
- acceptedDevices : flags
- acceptedModifiers : flags
- acceptedPointerTypes : flags
- active : bool
- centroid : QtQuick::HandlerPoint
- enabled : bool
- grabPermissions : flags
- margin : real
- maximumPointCount : int
- minimumPointCount : int
- parent : Item
- target : Item
Сигналы
- canceled(point)
- grabChanged(transition, EventPoint point)
Подробное описание
Промежуточный класс (не зарегистрированный как тип QML) для любого типа обработчика, который требует и действует на определённом количестве точек касания.
Документация по свойствам
acceptedButtons : flags
Кнопки мыши, которые могут активировать этот обработчик Pointer Handler.
По умолчанию это свойство установлено в Qt.LeftButton. Его можно установить как логическое ИЛИ сочетание кнопок мыши, и оно будет игнорировать события от других кнопок.
Например, элемент управления может реагировать на щелчки левой и правой кнопок по-разному, с помощью двух обработчиков:
Item {
TapHandler {
onTapped: console.log("left clicked")
}
TapHandler {
acceptedButtons: Qt.RightButton
onTapped: console.log("right clicked")
}
} Примечание: Нажатие на сенсорном экране или нажатие стилусом на графическом планшете эмулирует щелчок левой кнопкой мыши. Это поведение можно изменить с помощью acceptedDevices или acceptedPointerTypes.
acceptedDevices : flags
Типы указательных устройств, которые могут активировать этот обработчик Pointer Handler.
По умолчанию это свойство установлено в PointerDevice.AllDevices. Если вы установите его как логическое ИЛИ сочетание типов устройств, оно будет игнорировать события от несовпадающих устройств.
Например, элемент управления может реагировать на щелчки мыши и стилусом одним способом, а на касания на сенсорном экране — другим способом, с помощью двух обработчиков:
Item {
TapHandler {
acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus
onTapped: console.log("clicked")
}
TapHandler {
acceptedDevices: PointerDevice.TouchScreen
onTapped: console.log("tapped")
}
} acceptedModifiers : flags
Если это свойство установлено, для реагирования на события указателя потребуются нажатые клавиши модификаторов, в противном случае они будут игнорироваться.
Если это свойство установлено в Qt.KeyboardModifierMask (значение по умолчанию), то PointerHandler игнорирует клавиши модификаторов.
Например, элемент Item может иметь два обработчика одного типа, один из которых активен только при нажатии требуемых клавиш модификаторов:
Item {
TapHandler {
acceptedModifiers: Qt.ControlModifier
onTapped: console.log("control-tapped")
}
TapHandler {
acceptedModifiers: Qt.NoModifier
onTapped: console.log("tapped")
}
} acceptedPointerTypes : flags
Типы указательных инструментов (палец, стилус, ластик и т. д.), которые могут активировать этот обработчик Pointer Handler.
По умолчанию это свойство установлено в PointerDevice.AllPointerTypes. Если вы установите его как логическое ИЛИ сочетание типов устройств, оно будет игнорировать события от несовпадающих событий.
Например, элемент управления может реагировать на щелчки мышью, касаниями и стилусом каким-либо способом, но удалить себя, если на графическом планшете на него нажали ластиком, с помощью двух обработчиков:
Rectangle {
id: rect
TapHandler {
acceptedPointerTypes: PointerDevice.GenericPointer | PointerDevice.Finger | PointerDevice.Pen
onTapped: console.log("clicked")
}
TapHandler {
acceptedPointerTypes: PointerDevice.Eraser
onTapped: rect.destroy()
}
} [только для чтения] active : bool
Это значение истинно всякий раз, когда этот обработчик ввода принимает на себя полную ответственность за обработку одной или нескольких EventPoints, успешно захватив эксклюзивный захват этих точек. Это означает, что он поддерживает актуальность своих свойств в соответствии с перемещениями этих точек Event и активно манипулирует своим target (если таковой имеется).
[только для чтения] centroid : QtQuick::HandlerPoint
Точка, расположенная точно посередине текущих нажатых точек касания. Если нажата только одна точка, она совпадает с этой точкой. Обработчик, имеющий target, обычно преобразует её относительно этой точки.
enabled : bool
Если PointerHandler отключен, он отклонит все события, и никакие сигналы не будут выпущены.
grabPermissions : flags
Это свойство определяет разрешения при принятии логикой этого обработчика эксклюзивного захвата или при запросе на одобрение захвата или отмены захвата другим обработчиком.
| Постоянная | Описание |
|---|---|
PointerHandler.TakeOverForbidden |
Этот обработчик не берёт и не предоставляет разрешение на захват ни для какого типа Item или Handler. |
PointerHandler.CanTakeOverFromHandlersOfSameType |
Этот обработчик может захватить эксклюзивный захват от другого обработчика того же класса. |
PointerHandler.CanTakeOverFromHandlersOfDifferentType |
Этот обработчик может захватить эксклюзивный захват от любого обработчика. |
PointerHandler.CanTakeOverFromAnything |
Этот обработчик может захватить эксклюзивный захват от любого типа Item или Handler. |
PointerHandler.ApprovesTakeOverByHandlersOfSameType |
Этот обработчик предоставляет разрешение другому обработчику того же класса на захват. |
PointerHandler.ApprovesTakeOverByHandlersOfDifferentType |
Этот обработчик предоставляет разрешение любому типу обработчика на захват. |
PointerHandler.ApprovesTakeOverByItems |
Этот обработчик предоставляет разрешение любому типу Item на захват. |
PointerHandler.ApprovesCancellation |
Этот обработчик разрешит установить свой захват в null. |
PointerHandler.ApprovesTakeOverByAnything |
Этот обработчик предоставляет разрешение любому типу Item или Handler на захват. |
По умолчанию PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType | PointerHandler.ApprovesTakeOverByAnything, что разрешает большинство сценариев захвата, но избегает, например, конфликта между двумя PinchHandlers за те же точки касания.
margin : real
Поле за пределами границ элемента parent, в котором точка события может активировать этот обработчик. Например, в PinchHandler, где target также является parent, полезно установить это значение на расстояние, по крайней мере, равное половине ширины типичного пальца пользователя, чтобы если parent был уменьшен до очень малого размера, жесты масштабирования все ещё были возможны. Или, если кнопка на основе TapHandler расположена возле края экрана, она может использоваться для соблюдения закона Фиттса: реагировать на щелчки мыши на краю экрана, даже если кнопка визуально отстоит от края на несколько пикселей.
Значение по умолчанию — 0.
maximumPointCount : int
Максимальное количество точек касания, которое может использовать этот обработчик.
Если количество точек касания, соприкасающихся с parent, больше, то необходимое количество точек будет выбрано в порядке их нажатия, а оставшиеся точки будут проигнорированы.
Любые проигнорированные точки могут активировать другие обработчики ввода, имеющие различные ограничения, в том же элементе или в других элементах.
Значение по умолчанию совпадает со значением minimumPointCount.
minimumPointCount : int
Минимальное количество точек касания, необходимое для активации этого обработчика.
Если количество точек касания, соприкасающихся с parent, меньше, они будут проигнорированы.
Любые проигнорированные точки могут активировать другие обработчики ввода, имеющие различные ограничения, в том же элементе или в других элементах.
Значение по умолчанию — 2.
[только для чтения] parent : Item
Элемент Item, являющийся областью действия обработчика; Элемент, в котором он был объявлен. Обработчик будет обрабатывать события от имени этого элемента, что означает, что событие касания актуально, если хотя бы одна из его точек событий находится внутри области элемента. Изначально target() совпадает, но его можно переназначить.
См. также target и QObject::parent().
target : Item
Элемент Item, который будет обрабатываться этим обработчиком.
По умолчанию он совпадает с parent, элементом Item, в котором объявлен обработчик. Однако иногда бывает полезно установить target на другой элемент Item, чтобы обрабатывать события внутри одного элемента, но манипулировать другим; или чтобы null, чтобы отключить стандартное поведение и сделать что-то другое вместо этого.
Документация сигналов
canceled(point)
Если этот обработчик уже захватил заданную точку point, этот сигнал отправляется, когда захват захватывается другим обработчиком касаний или элементом.
grabChanged(transition, EventPoint point)
Этот сигнал отправляется, когда захват каким-либо образом изменился, что актуально для данного обработчика.
transition (глагол) показывает, что произошло. point (объект) — это точка, которая была захвачена или освобождена.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-qtquick-multipointhandler.html