|  | Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# QDropEvent Class Reference
[QtGui module]

The QDropEvent class provides an event which is sent when a drag and drop action is completed. More...

     #include <QDropEvent>

Inherits QEvent and QMimeSource.

Inherited by QDragMoveEvent.

- List of all members, including inherited members
- Qt 3 support members

### Public Functions

- QDropEvent ( const QPoint & pos, Qt::DropActions actions, const QMimeData * data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = Drop )
- void acceptProposedAction ()
- Qt::DropAction dropAction () const
- Qt::KeyboardModifiers keyboardModifiers () const
- const QMimeData * mimeData () const
- Qt::MouseButtons mouseButtons () const
- const QPoint & pos () const
- Qt::DropActions possibleActions () const
- Qt::DropAction proposedAction () const
- void setDropAction ( Qt::DropAction action )
- QWidget * source () const

- 6 public functions inherited from QEvent
- 3 public functions inherited from QMimeSource

### Additional Inherited Members

- 1 property inherited from QEvent

## Detailed Description

The QDropEvent class provides an event which is sent when a drag and drop action is completed.

When a widget accepts drop events, it will receive this event if it has accepted the most recent QDragEnterEvent or QDragMoveEvent sent to it.

The drop event contains a proposed action, available from proposedAction(), for the widget to either accept or ignore. If the action can be handled by the widget, you should call the acceptProposedAction() function. Since the proposed action can be a combination of Qt::DropAction values, it may be useful to either select one of these values as a default action or ask the user to select their preferred action.

If the proposed drop action is not suitable, perhaps because your custom widget does not support that action, you can replace it with any of the possible drop actions by calling setDropAction() with your preferred action. If you set a value that is not present in the bitwise OR combination of values returned by possibleActions(), the default copy action will be used. Once a replacement drop action has been set, call accept() instead of acceptProposedAction() to complete the drop operation.

The mimeData() function provides the data dropped on the widget in a QMimeData object. This contains information about the MIME type of the data in addition to the data itself.

See also QMimeData, QDrag, and Drag and Drop.

## Member Function Documentation

### QDropEvent::QDropEvent ( const QPoint & pos, Qt::DropActions actions, const QMimeData * data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = Drop )

Constructs a drop event of a certain type corresponding to a drop at the point specified by pos in the destination widget's coordinate system.

The actions indicate which types of drag and drop operation can be performed, and the drag data is stored as MIME-encoded data in data.

The states of the mouse buttons and keyboard modifiers at the time of the drop are specified by buttons and modifiers.

### void QDropEvent::acceptProposedAction ()

Sets the drop action to be the proposed action.

See also setDropAction(), proposedAction(), and accept().

### Qt::DropAction QDropEvent::dropAction () const

Returns the action to be performed on the data by the target. This may be different from the action supplied in proposedAction() if you have called setDropAction() to explicitly choose a drop action.

See also setDropAction().

### Qt::KeyboardModifiers QDropEvent::keyboardModifiers () const

Returns the modifier keys that are pressed.

### const QMimeData * QDropEvent::mimeData () const

Returns the data that was dropped on the widget and its associated MIME type information.

### Qt::MouseButtons QDropEvent::mouseButtons () const

Returns the mouse buttons that are pressed..

### const QPoint & QDropEvent::pos () const

Returns the position where the drop was made.

### Qt::DropActions QDropEvent::possibleActions () const

Returns an OR-combination of possible drop actions.

See also dropAction().

### Qt::DropAction QDropEvent::proposedAction () const

Returns the proposed drop action.

See also dropAction().

### void QDropEvent::setDropAction ( Qt::DropAction action )

Sets the action to be performed on the data by the target. Use this to override the proposed action with one of the possible actions.

If you set a drop action that is not one of the possible actions, the drag and drop operation will default to a copy operation.

Once you have supplied a replacement drop action, call accept() instead of acceptProposedAction().

See also dropAction().

### QWidget * QDropEvent::source () const

If the source of the drag operation is a widget in this application, this function returns that source; otherwise it returns 0. The source of the operation is the first parameter to the QDrag object used instantiate the drag.

This is useful if your widget needs special behavior when dragging to itself.

See also QDrag::QDrag().

## Member Type Documentation

### enum QDropEvent::Action

When a drag and drop action is completed, the target is expected to perform an action on the data provided by the source. This will be one of the following:

Constant | Value | Description
--- | --- | ---
`QDropEvent::Copy` | `0` | The default action. The source simply uses the data provided in the operation.
`QDropEvent::Link` | `1` | The source should somehow create a link to the location specified by the data.
`QDropEvent::Move` | `2` | The source should somehow move the object from the location specified by the data to a new location.
`QDropEvent::Private` | `3` | The target has special knowledge of the MIME type, which the source should respond to in a similar way to a Copy.
`QDropEvent::UserAction` | `Private` | The source and target can co-operate using special actions. This feature is not currently supported.

The Link and Move actions only makes sense if the data is a reference, for example, text/uri-list file lists (see QUriDrag).

## Member Function Documentation

### void QDropEvent::accept ( bool accept )

This is an overloaded member function, provided for convenience.

Call setAccepted(accept) instead.

### void QDropEvent::acceptAction ( bool accept = true )

Call this to indicate that the action described by action() is accepted (i.e. if accept is true, which is the default), not merely the default copy action. If you call acceptAction(true), there is no need to also call accept(true).

### Action QDropEvent::action () const

Use dropAction() instead.

The table below shows the correspondance between the return type of action() and the return type of dropAction().

Old enum value | New enum value
--- | ---
QDropEvent::Copy | Qt::CopyAction
QDropEvent::Move | Qt::MoveAction
QDropEvent::Link | Qt::LinkAction
other | Qt::CopyAction

### QByteArray QDropEvent::data ( const char * f ) const

The encoded data is in f. Use QDropEvent::encodedData().

### QByteArray QDropEvent::encodedData ( const char * format ) const `[virtual]`

Returns a byte array containing the drag's data, in format.

data() normally needs to get the data from the drag source, which is potentially very slow, so it's advisable to call this function only if you're sure that you will need the data in that particular format.

The resulting data will have a size of 0 if the format was not available.

Reimplemented from QMimeSource.

See also format() and QByteArray::size().

### const char * QDropEvent::format ( int n = 0 ) const `[virtual]`

Returns a string describing one of the available data types for this drag. Common examples are "text/plain" and "image/gif". If n is less than zero or greater than the number of available data types, format() returns 0.

This function is provided mainly for debugging. Most drop targets will use provides().

Reimplemented from QMimeSource.

See also data() and provides().

### bool QDropEvent::provides ( const char * mimeType ) const `[virtual]`

Returns true if this event provides format mimeType; otherwise returns false.

Reimplemented from QMimeSource.

See also data().

### void QDropEvent::setPoint ( const QPoint & point )

Sets the drop to happen at the given point. You do not normally need to use this as it will be set internally before your widget receives the drop event.