QGestureRecognizerclass provides the infrastructure for gesture recognition. 更多 …
4.6 版新增。
def
registerRecognizer
(recognizer)
def
unregisterRecognizer
(type)
Gesture recognizers are responsible for creating and managing
QGestureobjects and monitoring input events sent toQWidgetandQGraphicsObject子类。QGestureRecognizeris the base class for implementing custom gestures.Developers that only need to provide gesture recognition for standard gestures do not need to use this class directly. Instances will be created behind the scenes by the framework.
For an overview of gesture handling in Qt and information on using gestures in your applications, see the 在 Widget 和图形视图中的手势 文档。
The process of recognizing gestures involves filtering input events sent to specific objects, and modifying the associated
QGestureobjects to include relevant information about the user’s input.Gestures are created when the framework calls
create()to handle user input for a particular instance of aQWidgetorQGraphicsObjectsubclass. AQGestureobject is created for each widget or item that is configured to use gestures.一旦
QGesturehas been created for a target object, the gesture recognizer will receive events for it in itsrecognize()handler function.When a gesture is canceled, the
reset()function is called, giving the recognizer the chance to update the appropriate properties in the correspondingQGesture对象。
To add support for new gestures, you need to derive from
QGestureRecognizerto create a custom recognizer class, construct an instance of this class, and register it with the application by callingregisterRecognizer(). You can also subclassQGestureto create a custom gesture class, or rely on dynamic properties to express specific details of the gesture you want to handle.Your custom
QGestureRecognizersubclass needs to reimplement therecognize()function to handle and filter the incoming input events forQWidgetandQGraphicsObjectsubclasses. Although the logic for gesture recognition is implemented in this function, you can store persistent information about the state of the recognition process in theQGestureobject supplied. Therecognize()function must return a value of结果that indicates the state of recognition for a given gesture and target object. This determines whether or not a gesture event will be delivered to a target object.If you choose to represent a gesture by a custom
QGesturesubclass, you will need to reimplement thecreate()function to construct instances of your gesture class. Similarly, you may need to reimplement thereset()function if your custom gesture objects need to be specially handled when a gesture is canceled.另请参阅
QGestureRecognizer
¶
构造新的手势识别器对象。
PySide2.QtWidgets.QGestureRecognizer.
ResultFlag
¶
This enum describes the result of the current event filtering step in a gesture recognizer state machine.
The result consists of a state value (one of Ignore, , , , ) and an optional hint ().
|
常量 |
描述 |
|---|---|
|
QGestureRecognizer.Ignore |
The event does not change the state of the recognizer. |
|
QGestureRecognizer.MayBeGesture |
The event changed the internal state of the recognizer, but it isn’t clear yet if it is a gesture or not. The recognizer needs to filter more events to decide. Gesture recognizers in the state may be reset automatically if they take too long to recognize gestures. |
|
QGestureRecognizer.TriggerGesture |
The gesture has been triggered and the appropriate
|
|
QGestureRecognizer.FinishGesture |
The gesture has been finished successfully and the appropriate
|
|
QGestureRecognizer.CancelGesture |
The event made it clear that it is not a gesture. If the gesture recognizer was in GestureTriggered state before, then the gesture is canceled and the appropriate
|
|
QGestureRecognizer.ConsumeEventHint |
This hint specifies that the gesture framework should consume the filtered event and not deliver it to the receiver. |
另请参阅
PySide2.QtWidgets.QGestureRecognizer.
create
(
target
)
¶
target
–
QObject
This function is called by Qt to create a new
QGesture
object for the given
target
(
QWidget
or
QGraphicsObject
).
Reimplement this function to create a custom
QGesture
-derived gesture object if necessary.
The application takes ownership of the created gesture object.
PySide2.QtWidgets.QGestureRecognizer.
recognize
(
state
,
watched
,
event
)
¶
state
–
QGesture
watched
–
QObject
event
–
QEvent
结果
Handles the given
event
为
watched
object, updating the state of the
gesture
object as required, and returns a suitable result for the current recognition step.
This function is called by the framework to allow the recognizer to filter input events dispatched to
QWidget
or
QGraphicsObject
instances that it is monitoring.
The result reflects how much of the gesture has been recognized. The state of the
gesture
object is set depending on the result.
另请参阅
结果
PySide2.QtWidgets.QGestureRecognizer.
registerRecognizer
(
recognizer
)
¶
recognizer
–
QGestureRecognizer
GestureType
Registers the given
recognizer
in the gesture framework and returns a gesture ID for it.
The application takes ownership of the
recognizer
and returns the gesture type ID associated with it. For gesture recognizers which handle custom
QGesture
objects (i.e., those which return
CustomGesture
在
gestureType()
function) the return value is a generated gesture ID with the
CustomGesture
flag set.
PySide2.QtWidgets.QGestureRecognizer.
reset
(
state
)
¶
state
–
QGesture
This function is called by the framework to reset a given
gesture
.
Reimplement this function to implement additional requirements for custom
QGesture
objects. This may be necessary if you implement a custom
QGesture
whose properties need special handling when the gesture is reset.
PySide2.QtWidgets.QGestureRecognizer.
unregisterRecognizer
(
type
)
¶
type
–
GestureType
Unregisters all gesture recognizers of the specified
type
.
另请参阅