DragHandler QML Type | Qt Quick 5.12.9

- Qt 5.12
- Qt Quick
- QML Types
- DragHandler QML Type
- Qt 5.12.9 Reference Documentation

# DragHandler QML Type

Handler for dragging. More...

Import Statement: | import QtQuick 2.12
Inherits: | MultiPointHandler

- List of all members, including inherited members

## Properties

- translation : QVector2D
- xAxis
  - xAxis.minimum : real
  - xAxis.maximum : real
  - xAxis.enabled : bool
- yAxis
  - yAxis.minimum : real
  - yAxis.maximum : real
  - yAxis.enabled : bool

## Detailed Description

DragHandler is a handler that is used to interactively move an Item. Like other Input Handlers, by default it is fully functional, and manipulates its target.

     import QtQuick 2.12

     Rectangle {
         width: 100
         height: 100
         color: "lightsteelblue"
         DragHandler { }
     }

It has properties to restrict the range of dragging.

If it is declared within one Item but is assigned a different target, then it handles events within the bounds of the parent Item but manipulates the `target` Item instead:

     import QtQuick 2.12

     Item {
         width: 640
         height: 480

         Rectangle {
             id: feedback
             border.color: "red"
             width: Math.max(10, handler.centroid.ellipseDiameters.width)
             height: Math.max(10, handler.centroid.ellipseDiameters.height)
             radius: Math.max(width, height) / 2
             visible: handler.active
         }

         DragHandler {
             id: handler
             target: feedback
         }
     }

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

         DragHandler {
             id: handler
             target: null
         }

         Text {
             color: handler.active ? "darkgreen" : "black"
             text: handler.centroid.centroid.x.toFixed(1) + "," + handler.centroid.position.y.toFixed(1)
             x: handler.centroid.position.x - width / 2
             y: handler.centroid.position.y - height
         }
     }

If minimumPointCount and maximumPointCount are set to values larger than 1, the user will need to drag that many fingers in the same direction to start dragging. A multi-finger drag gesture can be detected independently of both a (default) single-finger DragHandler and a PinchHandler on the same Item, and thus can be used to adjust some other feature independently of the usual pinch behavior: for example adjust a tilt transformation, or adjust some other numeric value, if the `target` is set to null. But if the `target` is an Item, `centroid` is the point at which the drag begins and to which the `target` will be moved (subject to constraints).

At this time, drag-and-drop is not yet supported.

See also Drag and MouseArea.

## Property Documentation

[read-only] translation : QVector2D

The translation since the gesture began.

xAxis group
xAxis.minimum : real
xAxis.maximum : real
xAxis.enabled : bool

`xAxis` controls the constraints for horizontal dragging.

`minimum` is the minimum acceptable value of x to be applied to the target. `maximum` is the maximum acceptable value of x to be applied to the target. If `enabled` is true, horizontal dragging is allowed.

yAxis group
yAxis.minimum : real
yAxis.maximum : real
yAxis.enabled : bool

`yAxis` controls the constraints for vertical dragging.

`minimum` is the minimum acceptable value of y to be applied to the target. `maximum` is the maximum acceptable value of y to be applied to the target. If `enabled` is true, vertical dragging is allowed.