Тип QML SinglePointHandler
Абстрактный обработчик событий касания Single-Point. Подробнее...
| Заявление об импорте: | import QtQuick 2.13 |
| Наследует: | |
| Наследуется от: |
Свойства
- acceptedButtons : флаги
- acceptedDevices : флаги
- acceptedModifiers : флаги
- acceptedPointerTypes : флаги
- active : bool
- enabled : bool
- grabPermissions : флаги
- margin : вещественное число
- parent : Item
- point : HandlerPoint
- target : Item
Сигналы
- canceled(point)
- grabChanged(transition, EventPoint point)
Подробное описание
Промежуточный класс (не зарегистрированный как тип QML) для наиболее распространённых обработчиков: тех, которые ожидают только одну точку. wantsPointerEvent() выберет первую точку, которая находится внутри элемента target, и вернёт true, пока событие содержит эту точку. Переопределите handleEventPoint(), чтобы реализовать обработчик для одной точки.
Документация по свойствам
acceptedButtons : флаги
Кнопки мыши, которые могут активировать этот обработчик Pointer Handler.
По умолчанию это свойство установлено в Qt.LeftButton. Оно может быть установлено в логическое объединение кнопок мыши и будет игнорировать события от других кнопок.
Например, элемент управления может реагировать на левые и правые щелчки разными способами, с помощью двух обработчиков:
Item {
TapHandler {
onTapped: console.log("left clicked")
}
TapHandler {
acceptedButtons: Qt.RightButton
onTapped: console.log("right clicked")
}
} Примечание: Нажатие на сенсорном экране или нажатие стилусом на графическом планшете имитирует щелчок левой кнопкой мыши. Это поведение можно изменить с помощью acceptedDevices или acceptedPointerTypes.
acceptedDevices : флаги
Типы указательных устройств, которые могут активировать этот обработчик Pointer Handler.
По умолчанию это свойство установлено в PointerDevice.AllDevices. Если вы установите его в логическое объединение типов устройств, оно будет игнорировать события от устройств, не соответствующих этим типам.
Например, элемент управления может реагировать на щелчки мышью и стилусом одним способом, а на касания пальцем на сенсорном экране – другим способом, с помощью двух обработчиков:
Item {
TapHandler {
acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus
onTapped: console.log("clicked")
}
TapHandler {
acceptedDevices: PointerDevice.TouchScreen
onTapped: console.log("tapped")
}
} acceptedModifiers : флаги
Если это свойство установлено, для реакции на события указания потребуются нажатые клавиши модификаторов, в противном случае они будут игнорироваться.
Если это свойство установлено в Qt.KeyboardModifierMask (значение по умолчанию), то PointerHandler игнорирует клавиши модификаторов.
Например, у элемента Item могут быть два обработчика одного типа, один из которых активен только при нажатии необходимых клавиш модификаторов:
Item {
TapHandler {
acceptedModifiers: Qt.ControlModifier
onTapped: console.log("control-tapped")
}
TapHandler {
acceptedModifiers: Qt.NoModifier
onTapped: console.log("tapped")
}
} acceptedPointerTypes : флаги
Типы указательных инструментов (палец, стилус, ластик и т. д.), которые могут активировать этот обработчик 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
Это свойство истинно всякий раз, когда этот обработчик ввода получил полную ответственность за обработку одной или нескольких EventPoint, успешно захватив эксклюзивный доступ к этим точкам. Это означает, что он поддерживает актуальность своих свойств в соответствии с перемещениями этих EventPoint и активно управляет своим target (если таковой имеется).
enabled : bool
Если PointerHandler отключен, он отклонит все события, и никакие сигналы не будут излучаться.
grabPermissions : флаги
Это свойство определяет разрешения, когда логика этого обработчика принимает на себя эксклюзивный захват или когда его просят разрешить захват или отмену захвата другим обработчиком.
| Постоянная | Описание |
|---|---|
PointerHandler.TakeOverForbidden |
Этот обработчик не получает и не предоставляет разрешение на захват ни для какого типа элемента Item или обработчика. |
PointerHandler.CanTakeOverFromHandlersOfSameType |
Этот обработчик может захватить эксклюзивный доступ у другого обработчика того же класса. |
PointerHandler.CanTakeOverFromHandlersOfDifferentType |
Этот обработчик может захватить эксклюзивный доступ у любого типа обработчика. |
PointerHandler.CanTakeOverFromAnything |
Этот обработчик может захватить эксклюзивный доступ у любого типа элемента Item или обработчика. |
PointerHandler.ApprovesTakeOverByHandlersOfSameType |
Этот обработчик предоставляет разрешение другому обработчику того же класса захватить доступ. |
PointerHandler.ApprovesTakeOverByHandlersOfDifferentType |
Этот обработчик предоставляет разрешение любому типу обработчика захватить доступ. |
PointerHandler.ApprovesTakeOverByItems |
Этот обработчик предоставляет разрешение любому типу элемента Item захватить доступ. |
PointerHandler.ApprovesCancellation |
Этот обработчик позволит установить его захват в null. |
PointerHandler.ApprovesTakeOverByAnything |
Этот обработчик предоставляет разрешение любому типу элемента Item или обработчика захватить доступ. |
По умолчанию PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType | PointerHandler.ApprovesTakeOverByAnything, что позволяет большинству сценариев захвата, но предотвращает, например, конфликт между двумя PinchHandler за одними и теми же точками касания.
margin : вещественное число
Поле за пределами границ родительского элемента parent, в пределах которого точка события может активировать этот обработчик. Например, в PinchHandler, где target также является parent, полезно установить это значение на расстояние, по крайней мере, вдвое превышающее ширину типичного пальца пользователя, чтобы, если parent был уменьшен до очень малого размера, жест «щипок» по-прежнему был возможен. Или, если кнопка на основе TapHandler расположена рядом с краем экрана, она может быть использована для соблюдения закона Фиттса: реагировать на щелчки мыши у края экрана, даже если кнопка визуально расположена на расстоянии нескольких пикселей от края.
Значение по умолчанию равно 0.
[только для чтения] parent : Item
Элемент Item, который является областью действия обработчика; элемент, в котором он объявлен. Обработчик будет обрабатывать события от имени этого элемента, что означает, что событие указания важно, если хотя бы одна из его точек событий находится внутри внутреннего пространства элемента. Изначально target() такой же, но его можно переназначить.
См. также target и QObject::parent().
[только для чтения] point : HandlerPoint
Точка события, обрабатываемая в настоящее время. Когда никакая точка не обрабатывается в настоящее время, этот объект сбрасывается до значений по умолчанию (все координаты равны 0).
target : Item
Элемент Item, которым будет управлять этот обработчик.
По умолчанию он такой же, как parent, элемент, в котором объявлен обработчик. Однако иногда бывает полезно установить target на другой элемент, чтобы обрабатывать события в одном элементе, но управлять другим; или для null, чтобы отключить стандартное поведение и вместо этого сделать что-то другое.
Документация по сигналам
canceled(point)
Если этот обработчик уже захватил указанную point, этот сигнал излучается, когда захват украден другим обработчиком Pointer Handler или элементом Item.
grabChanged(transition, EventPoint point)
Этот сигнал испускается, когда захват изменился каким-либо образом, имеющим отношение к этому обработчику.
Переход (глагол) указывает, что произошло. Точка (объект) — это точка, которая была захвачена или отпущена.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-qtquick-singlepointhandler.html