Spec-Zone.ru › Qt 5.15

Класс QGestureRecognizer

Класс QGestureRecognizer предоставляет инфраструктуру для распознавания жестов. Подробнее...

Заголовок: #include <QGestureRecognizer>
qmake: QT += widgets
С момента: Qt 4.6

Этот класс был представлен в Qt 4.6.

  • Список всех членов, включая унаследованные

Типы public

флаги Результат
перечисление Флаг результата { Игнорировать, ВозможноЖест, СработалЖест, ЗаконченЖест, ОтмененЖест, ПоглотитьСобытие }

Функции public

QGestureRecognizer()
virtual ~QGestureRecognizer()
virtual QGesture * создать(QObject *target)
virtual QGestureRecognizer::Результат распознать(QGesture *gesture, QObject *watched, QEvent *event) = 0
virtual void сбросить(QGesture *gesture)

Статические члены public

Qt::GestureType зарегистрироватьРаспознаватель(QGestureRecognizer *recognizer)
void отменитьРегистрациюРаспознавателя(Qt::GestureType type)

Подробное описание

Распознаватели жестов отвечают за создание и управление объектами QGesture и отслеживание событий ввода, отправленных в QWidget и QGraphicsObject подклассы. QGestureRecognizer является базовым классом для реализации пользовательских жестов.

Разработчикам, которым требуется только предоставить распознавание жестов для стандартных жестов, не нужно использовать этот класс напрямую. Экземпляры будут создаваться в фоновом режиме фреймворком.

Обзор обработки жестов в Qt и информация о использовании жестов в ваших приложениях см. в документе Жесты в виджетах и графическом представлении.

Распознавание жестов

Процесс распознавания жестов включает фильтрацию событий ввода, отправленных в определенные объекты, и изменение связанных объектов QGesture для включения соответствующей информации об вводе пользователя.

Жесты создаются, когда фреймворк вызывает создать() для обработки ввода пользователя для конкретного экземпляра QWidget или QGraphicsObject подкласса. Объект QGesture создается для каждого виджета или элемента, настроенного для использования жестов.

После того, как для целевого объекта был создан объект QGesture, распознаватель жестов получит события для него в обработчике функции распознать().

Когда жест отменяется, вызывается функция сбросить(), предоставляя распознавателю возможность обновить соответствующие свойства в соответствующем объекте QGesture.

Поддержка новых жестов

Для добавления поддержки новых жестов необходимо унаследовать от QGestureRecognizer для создания пользовательского класса распознавателя, создать экземпляр этого класса и зарегистрировать его в приложении, вызвав QGestureRecognizer::registerRecognizer(). Вы также можете унаследовать от QGesture, чтобы создать пользовательский класс жеста, или полагаться на динамические свойства для выражения определенных деталей жеста, который вы хотите обработать.

Ваш пользовательский подкласс QGestureRecognizer должен переопределить функцию распознать() для обработки и фильтрации входящих событий ввода для QWidget и QGraphicsObject подклассов. Хотя логика распознавания жестов реализуется в этой функции, вы можете хранить постоянную информацию о состоянии процесса распознавания в объекте QGesture, который предоставляется. Функция распознать() должна возвращать значение QGestureRecognizer::Результат, которое указывает состояние распознавания для заданного жеста и целевого объекта. Это определяет, будет ли событие жеста передано целевому объекту.

Если вы выберите представить жест с помощью пользовательского подкласса QGesture, вам потребуется переопределить функцию создать() для создания экземпляров вашего класса жеста. Аналогично, вам может потребоваться переопределить функцию сбросить(), если ваши пользовательские объекты жестов требуют специальной обработки, когда жест отменяется.

См. также QGesture.

Документация по типу членов

перечисление QGestureRecognizer::Флаг результата QGestureRecognizer::Результат

Это перечисление описывает результат текущего этапа фильтрации событий в машине состояний распознавателя жестов.

Результат состоит из значения состояния (одно из Игнорировать, ВозможноЖест, СработалЖест, ЗаконченЖест, ОтмененЖест) и необязательного подсказки (ПоглотитьСобытие).

Постоянная Значение Описание
QGestureRecognizer::Ignore 0x0001 Событие не изменяет состояние распознавателя.
QGestureRecognizer::MayBeGesture 0x0002 Событие изменило внутреннее состояние распознавателя, но пока неясно, является ли это жестом. Распознавателю необходимо отфильтровать больше событий, чтобы принять решение. Распознаватели жестов в состоянии ВозможноЖест могут быть сброшены автоматически, если им потребуется слишком много времени для распознавания жестов.
QGestureRecognizer::TriggerGesture 0x0004 Жест был инициирован, и соответствующий объект QGesture будет передан целевому объекту как часть QGestureEvent.
QGestureRecognizer::FinishGesture 0x0008 Жест успешно завершен, и соответствующий объект QGesture будет передан целевому объекту как часть QGestureEvent.
QGestureRecognizer::CancelGesture 0x0010 Событие показало, что это не жест. Если распознаватель жестов был в состоянии СработалЖест до этого, то жест отменяется, и соответствующий объект QGesture будет передан целевому объекту как часть QGestureEvent.
QGestureRecognizer::ConsumeEventHint 0x0100 Эта подсказка указывает, что фреймворк жестов должен поглотить отфильтрованное событие и не передавать его получателю.

Тип Результат является typedef для QFlags<Флаг результата>. Он хранит логическое ИЛИ сочетание значений Флаг результата.

См. также QGestureRecognizer::распознать().

Документация по функциям-членам

QGestureRecognizer::QGestureRecognizer()

Конструирует новый объект распознавателя жестов.

[virtual] QGestureRecognizer::~QGestureRecognizer()

Уничтожает распознаватель жестов.

[virtual] QGesture *QGestureRecognizer::создать(QObject *target)

Эта функция вызывается Qt для создания нового объекта QGesture для данного target (QWidget или QGraphicsObject).

Переопределите эту функцию для создания пользовательского объекта жеста, производного от QGesture, если это необходимо.

Приложение принимает на себя владение созданным объектом жеста.

[pure virtual] QGestureRecognizer::Результат QGestureRecognizer::распознать(QGesture *gesture, QObject *watched, QEvent *event)

Обрабатывает данное event для объекта watched, обновляет состояние объекта gesture по мере необходимости и возвращает подходящий результат для текущего шага распознавания.

Эта функция вызывается фреймворком, чтобы позволить распознавателю отфильтровать события ввода, отправленные QWidget или QGraphicsObject экземплярам, за которыми он следит.

Результат отражает степень распознавания жеста. Состояние объекта gesture устанавливается в зависимости от результата.

См. также QGestureRecognizer::Результат.

[static] Qt::GestureType QGestureRecognizer::registerRecognizer(QGestureRecognizer *recognizer)

Регистрирует заданный recognizer в системе управления жестами и возвращает для него идентификатор жеста.

Приложению передается владение recognizer, и возвращается идентификатор типа жеста, связанный с ним. Для распознавателей жестов, обрабатывающих пользовательские объекты QGesture (то есть тех, которые возвращают Qt::CustomGesture в функции QGesture::gestureType()), возвращаемое значение является сгенерированным идентификатором жеста с установленным флагом Qt::CustomGesture.

См. также unregisterRecognizer(), QGestureRecognizer::create() и QGesture.

[virtual] void QGestureRecognizer::reset(QGesture *gesture)

Эта функция вызывается системой для сброса заданного gesture.

Переопределите эту функцию, чтобы реализовать дополнительные требования для пользовательских объектов QGesture. Это может потребоваться, если вы реализуете пользовательский объект QGesture, свойства которого требуют специальной обработки при сбросе жеста.

[static] void QGestureRecognizer::unregisterRecognizer(Qt::GestureType type)

Деактивирует все распознаватели жестов указанного type.

См. также registerRecognizer().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qgesturerecognizer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API