Тип HandlerPoint QML
Точка события. Подробнее...
| Оператор импорта: | import QtQuick |
Свойства
- ellipseDiameters : размер
- id : int
- modifiers : перечисление
- position : QPointF
- pressPosition : QPointF
- pressedButtons : перечисление
- pressure : qreal
- rotation : qreal
- sceneGrabPosition : QPointF
- scenePosition : QPointF
- scenePressPosition : QPointF
- uniqueId : pointingDeviceUniqueId
- velocity : QVector2D
Подробное описание
Представление QML объекта QEventPoint.
Возможна привязка к свойствам текущей точки обработчика point или centroid. Например:
import QtQuick 2.12
Item {
width: 640
height: 480
DragHandler {
id: handler
target: null
}
Text {
color: handler.active ? "darkgreen" : "black"
text: handler.centroid.position.x.toFixed(1) + "," + handler.centroid.position.y.toFixed(1)
x: handler.centroid.position.x - width / 2
y: handler.centroid.position.y - height
}
} Точка обновляется, когда DragHandler активно реагирует на EventPoint; но после отпускания точки или когда текущая точка обрабатывается другим обработчиком, position.x и position.y равны 0.
Примечание: Это практически идентично QtQuick::EventPoint; однако EventPoint — это долгоживущий объект QObject, который становится недействительным между жестами и повторно используется для последующей доставки событий. Непрерывные привязки к его свойствам невозможны, и отдельный обработчик не может полагаться на него за пределами периода, когда эта точка является частью активного жеста, который обрабатывается этим обработчиком. HandlerPoint — это Q_GADGET, который принадлежит обработчику. Это позволяет создавать привязки к его свойствам на весь срок службы.
См. также SinglePointHandler::point и MultiPointHandler::centroid.
Документация свойств
[только для чтения] ellipseDiameters : размер
Это свойство содержит диаметры контактной области, если событие поступает от точки касания, и устройство предоставляет эту информацию.
Точка касания моделируется как эллиптическая область, где палец прижат к сенсорному экрану. (На самом деле, она может быть смоделирована и как битовая карта; но в этом случае мы ожидаем, что к контактной области будет подгонка эллиптического охватывающего прямоугольника перед отправкой события.) Чем сильнее пользователь нажимает, тем больше контактная область; поэтому эти диаметры предоставляют альтернативный способ обнаружения давления, в случае если устройство не включает отдельный датчик давления. Эллипс центрирован на scenePosition (position в локальных координатах элемента PointerHandler). Свойство rotation предоставляет угол поворота эллипса, если он известен. Ожидается, что если rotation равен нулю, высота — это большая размерность (главная ось), из-за обычного расположения руки, направленной вверх или наружу по поверхности.
Если контактная область неизвестна или устройство не является сенсорным экраном, эти значения будут нулевыми.
См. также QtQuick::TouchPoint::ellipseDiameters и QEventPoint::ellipseDiameters.
[только для чтения] id : int
Номер идентификатора точки
Во время жеста касания, от первого нажатия пальца до отпускания последнего, каждая точка касания будет иметь уникальный номер идентификатора. Аналогично, если происходит вход от нескольких устройств (например, одновременные нажатия мыши и сенсорного экрана), все текущие точки событий от всех устройств будут иметь уникальные идентификаторы.
Примечание: Не предполагайте, что номера id начинаются с нуля или что они последовательны. Такое предположение часто ложно из-за работы драйверов.
См. также QEventPoint::id.
[только для чтения] modifiers : перечисление
Какие модификаторные клавиши нажаты в данный момент
Это свойство содержит нажатые клавиши модификаторов клавиатуры на момент возникновения события.
[только для чтения] position : QPointF
Положение в элементе parent
Это положение точки события относительно границ родительского элемента.
[только для чтения] pressPosition : QPointF
Положение нажатия в элементе parent
Это положение, в котором была нажата эта точка, относительно границ родительского элемента.
[только для чтения] pressedButtons : перечисление
Какие клавиши мыши или стилуса нажаты в данный момент
См. также MouseArea::pressedButtons.
[только для чтения] pressure : qreal
Это свойство показывает, насколько сильно пользователь нажимает стилусом на графический планшет или пальцем на сенсорный экран, в диапазоне от 0 (нет измеримого давления) до 1.0 (максимальное давление, которое устройство может измерить).
Действительно только для определенных планшетов и сенсорных экранов, которые могут измерять давление. В противном случае оно будет равно нулю.
[только для чтения] rotation : qreal
Это свойство содержит угол поворота стилуса на графическом планшете или контактной области точки касания на сенсорном экране.
Действительно только для определенных устройств стилусов и сенсорных экранов, которые могут измерять угол поворота. В противном случае оно будет равно нулю.
[только для чтения] sceneGrabPosition : QPointF
Положение захвата в сцене
Если эта точка была захвачена обработчиком Pointer или элементом, это означает, что этот объект взял на себя полную ответственность за обработку перемещения и отпускания этой точки. В этом случае это положение, в котором произошел захват, в системе координат дерева сцены.
[только для чтения] scenePosition : QPointF
Положение в сцене
Это положение точки события относительно границ сцены Qt Quick (обычно всего окна).
[только для чтения] scenePressPosition : QPointF
Положение нажатия в сцене
Это положение, в котором была нажата эта точка, в системе координат дерева сцены.
[только для чтения] uniqueId : pointingDeviceUniqueId
Уникальный идентификатор точки, если таковой имеется
Обычно пусто, поскольку сенсорные экраны не могут однозначно идентифицировать пальцы.
На некоторых типах сенсорных экранов, особенно тех, которые используют драйверы TUIO, возможно использование узнаваемых физических маркеров (объектов фидуциала) в дополнение к пальцам. Поэтому, если эта точка — это точка касания, и uniqueId задано, это идентификатор такого объекта.
На графическом планшете каждый тип стилуса или другого инструмента часто имеет уникальный идентификатор или серийный номер, что может быть полезно для различной реакции на разные инструменты.
Интерпретация содержимого этого идентификатора требует знания используемого оборудования и драйверов.
См. также QTabletEvent::uniqueId и QtQuick::TouchPoint::uniqueId.
[только для чтения] velocity : QVector2D
Вектор, представляющий среднюю скорость и направление движения
Это вектор скорости, указывающий направление движения, в логических пикселях в секунду. Он имеет компоненты x и y, по крайней мере один из которых будет ненулевым, когда эта точка находится в движении. Он содержит среднюю недавнюю скорость: насколько быстро и в каком направлении точка события недавно двигалась.
См. также QtQuick::TouchPoint::velocity и QEventPoint::velocity.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick-handlerpoint.html