Handler for pinch gestures. 更多...
import 语句: | import QtQuick 2.12 |
继承: | MultiPointHandler |
PinchHandler is a handler that interprets a multi-finger gesture to interactively rotate, zoom, and drag an Item. Like other Input Handlers, by default it is fully functional, and manipulates its target , which is the Item within which it is declared.
import QtQuick 2.12 Rectangle { width: 400 height: 300 color: "lightsteelblue" PinchHandler { } }
It has properties to restrict the range of dragging, rotation, and zoom.
If it is declared within one Item but is assigned a different
target
, it handles events within the bounds of the outer Item but manipulates the
target
Item instead:
import QtQuick 2.12 Item { width: 640 height: 480 Rectangle { id: map color: "aqua" width: 400 height: 300 } PinchHandler { target: map } }
A third way to use it is to set
target
to
null
and react to property changes in some other way:
import QtQuick 2.12 Item { width: 640 height: 480 PinchHandler { id: handler target: null } Text { color: handler.active ? "darkgreen" : "black" text: handler.rotation.toFixed(1) + " degrees\n" + handler.translation.x.toFixed(1) + ", " + handler.translation.y.toFixed(1) + "\n" + (handler.scale * 100).toFixed(1) + "%" } }
注意:
The pinch begins when the number of fingers pressed is between
minimumPointCount
and
maximumPointCount
, inclusive. Until then,
PinchHandler
tracks the positions of any pressed fingers, but if it's a disallowed number, it does not scale or rotate its
target
,和
active
property remains
false
.
另请参阅 PinchArea and QPointerEvent::pointCount().
active : bool |
此特性是
true
when all the constraints (epecially
minimumPointCount
and
maximumPointCount
) are satisfied and the
target
, if any, is being manipulated.
[read-only] activeScale : real |
The scale factor while the pinch gesture is being performed. It is 1.0 when the gesture begins, increases as the touchpoints are spread apart, and decreases as the touchpoints are brought together. If target is not null, its scale will be automatically multiplied by this value. Otherwise, bindings can be used to do arbitrary things with this value.
[read-only] centroid : QtQuick::HandlerPoint |
A point exactly in the middle of the currently-pressed touch points. The target will be rotated around this point.
maximumRotation : real |
The maximum acceptable rotation to be applied to the target .
maximumScale : real |
The maximum acceptable scale to be applied to the target .
minimumRotation : real |
The minimum acceptable rotation to be applied to the target .
minimumScale : real |
The minimum acceptable scale to be applied to the target .
[read-only] rotation : real |
The rotation of the pinch gesture in degrees, with positive values clockwise. It is 0 when the gesture begins. If target is not null, this will be automatically applied to its rotation . Otherwise, bindings can be used to do arbitrary things with this value.
[read-only] scale : real |
The scale factor that will automatically be set on the target if it is not null. Otherwise, bindings can be used to do arbitrary things with this value. While the pinch gesture is being performed, it is continuously multiplied by activeScale ; after the gesture ends, it stays the same; and when the next pinch gesture begins, it begins to be multiplied by activeScale 再次。
The translation of the gesture
centroid
. It is
(0, 0)
when the gesture begins.
xAxis group |
---|
xAxis.minimum : real |
xAxis.maximum : real |
xAxis.enabled : bool |
xAxis
controls the constraints for horizontal translation of the
target
项。
minimum
is the minimum acceptable x coordinate of the translation.
maximum
is the maximum acceptable x coordinate of the translation. If
被启用
is true, horizontal dragging is allowed.
yAxis group |
---|
yAxis.minimum : real |
yAxis.maximum : real |
yAxis.enabled : bool |
yAxis
controls the constraints for vertical translation of the
target
项。
minimum
is the minimum acceptable y coordinate of the translation.
maximum
is the maximum acceptable y coordinate of the translation. If
被启用
is true, vertical dragging is allowed.