Spec-Zone.ru › Qt 5.6

Класс QGestureRecognizer

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

Заголовок: #include <QGestureRecognizer>
qmake: QT += widgets
С момента: Qt 4.6
  • Список всех членов, включая унаследованные

Открытые типы

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

Открытые функции

QGestureRecognizer()
виртуальный ~QGestureRecognizer()
виртуальный QGesture * create(QObject *target)
виртуальный Результат recognize(QGesture *gesture, QObject *watched, QEvent *event) = 0
виртуальный void reset(QGesture *gesture)

Статические открытые члены

Qt::GestureType registerRecognizer(QGestureRecognizer *recognizer)
void unregisterRecognizer(Qt::GestureType type)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также 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 Эта подсказка указывает, что фреймворк жестов должен обработать отфильтрованное событие и не передавать его получателю.

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

См. также QGestureRecognizer::recognize().

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

QGestureRecognizer::QGestureRecognizer()

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

QGestureRecognizer::~QGestureRecognizer()

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

QGesture *QGestureRecognizer::create(QObject *target)

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

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

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

Результат QGestureRecognizer::recognize(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/archives/qt-5.6/qgesturerecognizer.html

Spec-Zone.ru

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