Класс QNativeGestureEvent
Класс QNativeGestureEvent содержит параметры, описывающие событие жеста. Подробнее...
| Заголовок: | #include <QNativeGestureEvent> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| С тех пор: | Qt 5.2 |
| Наследует: | QSinglePointEvent |
Открытые функции
| QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *device, int fingerCount, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX) | |
| QPointF | delta() const |
| int | fingerCount() const |
| Qt::NativeGestureType | gestureType() const |
| qreal | value() const |
Подробное описание
События нативных жестов генерируются операционной системой, обычно интерпретируя события касания трекпада. События жестов являются событиями высокого уровня, такими как масштабирование, поворот или перемещение. Несколько типов содержат значения приращений: то есть, value() и delta() предоставляют разницу между предыдущим и текущим событиями.
| Тип события | Описание | Последовательность касаний |
|---|---|---|
| Qt::ZoomNativeGesture | Приращение масштабирования в процентах. | macOS и Wayland: Щелчок двумя пальцами. |
| Qt::SmartZoomNativeGesture | Логическое состояние масштабирования. | macOS: Двойной щелчок двумя пальцами (трекпад) / Двойной щелчок одним пальцем (мышь Magic Mouse). |
| Qt::RotateNativeGesture | Приращение поворота в градусах. | macOS и Wayland: Поворот двумя пальцами. |
| Qt::SwipeNativeGesture | Угол свайпа в градусах. | macOS: Настраивается в настройках трекпада. |
| Qt::PanNativeGesture | Приращение перемещения в пикселях. | Wayland: Движение трех или более пальцев как группы в любом направлении. |
Кроме того, BeginNativeGesture и EndNativeGesture отправляются до и после потоков событий жестов:
BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture
Поток событий может содержать чередующиеся жесты разных типов: например, жест щелчка двумя пальцами генерирует поток событий Zoom и Rotate, а PanNativeGesture иногда может чередоваться с ними, в зависимости от платформы.
Другие типы являются автономными событиями: SmartZoomNativeGesture и SwipeNativeGesture происходят только один раз каждый раз, когда жест определяется.
Примечание: На трекпаде перемещение двух пальцев как группы (жест свайпа двумя пальцами) обычно используется для прокрутки; в этом случае Qt генерирует QWheelEvents. Это причина, по которой для генерации PanNativeGesture требуется три или более пальца.
См. также Qt::NativeGestureType, QGestureEvent и QWheelEvent.
Документация по функциям-членам
[since 6.2] QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *device, int fingerCount, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX)
Создает событие нативного жеста типа type, исходящее от device, описывающее жест в позиции scenePos, в котором участвуют fingerCount пальцев.
Точки localPos, scenePos и globalPos указывают позицию жеста относительно целевого виджета или элемента, окна и экрана или рабочего стола соответственно.
value имеет интерпретацию, зависящую от жеста: для RotateNativeGesture или SwipeNativeGesture это угол в градусах. Для ZoomNativeGesture value является приращением коэффициента масштабирования, обычно намного меньшим 1, указывающим, что размер элемента должен быть изменен следующим образом: item.scale = item.scale * (1 + event.value)
Для PanNativeGesture, delta дает расстояние в пикселях, на которое должен быть перемещен, сдвинут или изменен viewport, виджет или элемент.
Примечание: delta хранится с одинарной точностью (QVector2D), поэтому delta() может возвращать немного разные значения в некоторых случаях. Это может измениться в будущих версиях Qt.
Эта функция была добавлена в Qt 6.2.
[since 6.2] QPointF QNativeGestureEvent::delta() const
Возвращает расстояние перемещения с момента предыдущего события в пикселях. Жест Pan предоставляет расстояние в пикселях, на которое целевой виджет, элемент или содержимое viewport должны быть смещены.
Эта функция была добавлена в Qt 6.2.
См. также QPanGesture::delta().
[since 6.2] int QNativeGestureEvent::fingerCount() const
Возвращает количество пальцев, участвующих в жесте, если оно известно. Когда gestureType() имеет значение Qt::BeginNativeGesture или Qt::EndNativeGesture, часто эта информация неизвестна, и fingerCount() возвращает 0.
Эта функция была добавлена в Qt 6.2.
[since 5.2] Qt::NativeGestureType QNativeGestureEvent::gestureType() const
Возвращает тип жеста.
Эта функция была добавлена в Qt 5.2.
[since 5.2] qreal QNativeGestureEvent::value() const
Возвращает значение жеста. Значение должно интерпретироваться на основе типа жеста. Например, жест масштабирования предоставляет приращение коэффициента масштабирования, а жест поворота предоставляет приращение поворота.
Эта функция была добавлена в Qt 5.2.
См. также QNativeGestureEvent и gestureType().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qnativegestureevent.html