QGestureRecognizer Class

제스처 인식 클래스는 제스처 인식을 위한 인프라를 제공합니다. 더 보기...

Header: #include <QGestureRecognizer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets

공용 타입

flags Result
enum ResultFlag { Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture, ConsumeEventHint }

공용 함수

QGestureRecognizer()
virtual ~QGestureRecognizer()
virtual QGesture *create(QObject *target)
virtual QGestureRecognizer::Result recognize(QGesture *gesture, QObject *watched, QEvent *event) = 0
virtual void reset(QGesture *gesture)

정적 공용 멤버

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

상세 설명

제스처 인식기는 QGesture 객체를 생성 및 관리하고 QWidgetQGraphicsObject 서브클래스로 전송되는 입력 이벤트를 모니터링하는 역할을 담당합니다. QGestureRecognizer는 사용자 지정 제스처를 구현하기 위한 베이스 클래스입니다.

표준 제스처에 대한 제스처 인식만 제공해야 하는 개발자는 이 클래스를 직접 사용할 필요가 없습니다. 프레임워크에서 백그라운드에서 인스턴스를 생성합니다.

Qt의 제스처 처리에 대한 개요와 애플리케이션에서 제스처를 사용하는 방법에 대한 정보는 위젯 및 그래픽 보기의 제 스처 문서를 참조하십시오.

제스처 인식하기

제스처를 인식하는 과정에는 특정 객체로 전송된 입력 이벤트를 필터링하고 사용자의 입력에 대한 관련 정보를 포함하도록 관련 QGesture 객체를 수정하는 작업이 포함됩니다.

제스처는 프레임워크가 QWidget 또는 QGraphicsObject 하위 클래스의 특정 인스턴스에 대한 사용자 입력을 처리하기 위해 create()를 호출할 때 생성됩니다. 제스처를 사용하도록 구성된 각 위젯 또는 항목에 대해 QGesture 객체가 생성됩니다.

대상 객체에 대해 QGesture 객체가 생성되면 제스처 인식기는 recognize() 핸들러 함수에서 해당 객체에 대한 이벤트를 수신합니다.

제스처가 취소되면 reset() 함수가 호출되어 인식기가 해당 QGesture 객체에서 적절한 속성을 업데이트할 수 있는 기회를 제공합니다.

새 제스처 지원

새 제스처에 대한 지원을 추가하려면 QGestureRecognizer에서 파생하여 사용자 지정 인식기 클래스를 만들고 이 클래스의 인스턴스를 구성한 다음 QGestureRecognizer::registerRecognizer()를 호출하여 애플리케이션에 등록해야 합니다. QGesture 을 서브 클래스화하여 사용자 지정 제스처 클래스를 만들거나 동적 속성을 사용하여 처리하려는 제스처의 특정 세부 사항을 표현할 수도 있습니다.

커스텀 제스처 인식기 하위 클래스는 recognize() 함수를 다시 구현하여 QWidgetQGraphicsObject 하위 클래스에 대한 수신 입력 이벤트를 처리하고 필터링해야 합니다. 제스처 인식을 위한 로직은 이 함수에서 구현되지만, 제공된 QGesture 객체에 인식 프로세스 상태에 대한 영구 정보를 저장할 수 있습니다. recognize () 함수는 주어진 제스처와 대상 객체의 인식 상태를 나타내는 QGestureRecognizer::Result 값을 반환해야 합니다. 이 값에 따라 제스처 이벤트가 대상 객체에 전달될지 여부가 결정됩니다.

사용자 지정 QGesture 하위 클래스로 제스처를 표현하기로 선택한 경우 제스처 클래스의 인스턴스를 구성하기 위해 create() 함수를 다시 구현해야 합니다. 마찬가지로 제스처가 취소될 때 사용자 지정 제스처 객체를 특별히 처리해야 하는 경우 reset() 함수를 다시 구현해야 할 수도 있습니다.

QGesture참조하세요 .

멤버 유형 문서

열거형 QGestureRecognizer::ResultFlag
플래그 QGestureRecognizer::Result

제스처 인식기 상태 머신에서 현재 이벤트 필터링 단계의 결과를 설명하는 열거형입니다.

결과는 상태 값(무시, 메이비제스처, 트리거제스처, 마침제스처, 취소제스처 중 하나)과 선택적 힌트(ConsumeEventHint)로 구성됩니다.

상수설명
QGestureRecognizer::Ignore0x0001이벤트는 인식기의 상태를 변경하지 않습니다.
QGestureRecognizer::MayBeGesture0x0002이벤트가 인식기의 내부 상태를 변경했지만 제스처인지 아닌지는 아직 명확하지 않습니다. 인식기가 더 많은 이벤트를 필터링하여 결정해야 합니다. 제스처를 인식하는 데 너무 오래 걸리면 MayBeGesture 상태의 제스처 인식기가 자동으로 재설정될 수 있습니다.
QGestureRecognizer::TriggerGesture0x0004제스처가 트리거되었으며 적절한 QGesture 객체가 QGestureEvent 의 일부로 대상에 전달됩니다.
QGestureRecognizer::FinishGesture0x0008제스처가 성공적으로 완료되었으며 적절한 QGesture 객체가 QGestureEvent 의 일부로 대상에게 전달됩니다.
QGestureRecognizer::CancelGesture0x0010이 이벤트는 제스처가 아님을 분명히 했습니다. 제스처 인식기가 이전에 제스처 트리거 상태였다면 제스처가 취소되고 적절한 QGesture 객체가 QGestureEvent 의 일부로 대상에 전달됩니다.
QGestureRecognizer::ConsumeEventHint0x0100이 힌트는 제스처 프레임워크가 필터링된 이벤트를 소비하고 수신자에게 전달하지 않도록 지정합니다.

Result 유형은 QFlags<ResultFlag>에 대한 typedef입니다. ResultFlag 값의 OR 조합을 저장합니다.

QGestureRecognizer::recognize()도 참조하세요 .

멤버 함수 문서

QGestureRecognizer::QGestureRecognizer()

새 제스처 인식기 객체를 생성합니다.

[virtual noexcept] QGestureRecognizer::~QGestureRecognizer()

제스처 인식기를 파괴합니다.

[virtual] QGesture *QGestureRecognizer::create(QObject *target)

이 함수는 주어진 target (QWidget 또는 QGraphicsObject)에 대해 새로운 QGesture 객체를 생성하기 위해 Qt에서 호출됩니다.

필요한 경우 이 함수를 다시 구현하여 사용자 정의 QGesture- 파생 제스처 객체를 만듭니다.

애플리케이션은 생성된 제스처 객체의 소유권을 갖습니다.

[pure virtual] QGestureRecognizer::Result QGestureRecognizer::recognize(QGesture *gesture, QObject *watched, QEvent *event)

watched 객체에 대해 주어진 event 을 처리하고, 필요에 따라 gesture 객체의 상태를 업데이트하며, 현재 인식 단계에 적합한 결과를 반환합니다.

이 함수는 프레임워크에서 호출되어 인식기가 모니터링 중인 QWidget 또는 QGraphicsObject 인스턴스로 전송된 입력 이벤트를 필터링할 수 있도록 합니다.

결과는 제스처가 인식된 정도를 반영합니다. 결과에 따라 gesture 객체의 상태가 설정됩니다.

QGestureRecognizer::Result도 참조하세요 .

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

주어진 recognizer 을 제스처 프레임워크에 등록하고 이에 대한 제스처 ID를 반환합니다.

애플리케이션은 recognizer 의 소유권을 가져와 이와 연결된 제스처 유형 ID를 반환합니다. 사용자 지정 QGesture 객체를 처리하는 제스처 인식기(즉, QGesture::gestureType() 함수에서 Qt::CustomGesture 을 반환하는 제스처 인식기)의 경우 반환 값은 Qt::CustomGesture 플래그가 설정된 생성된 제스처 ID입니다.

unregisterRecognizer(), QGestureRecognizer::create() 및 QGesture참조하세요 .

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

이 함수는 프레임워크에서 주어진 gesture 을 재설정하기 위해 호출됩니다.

사용자 정의 QGesture 객체에 대한 추가 요구 사항을 구현하려면 이 함수를 다시 구현하세요. 제스처가 재설정될 때 특별한 처리가 필요한 속성이 있는 사용자 지정 QGesture 을 구현하는 경우 이 함수가 필요할 수 있습니다.

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

지정된 type 의 모든 제스처 인식기 등록을 취소합니다.

registerRecognizer()도 참조하세요 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.