返回介绍

QDropEvent Class

发布于 2019-10-04 15:00:02 字数 7238 浏览 1077 评论 0 收藏 0

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

#include <qevent.h>

Inherits QEvent and QMimeSource.

Inherited by QDragMoveEvent.

List of all member functions.

Public Members

  • QDropEvent ( constQPoint&pos, Typetyp = Drop )
  • const QPoint & pos () const
  • bool isAccepted () const
  • void accept ( booly = TRUE )
  • void ignore ()
  • bool isActionAccepted () const
  • void acceptAction ( booly = TRUE )
  • enum Action { Copy, Link, Move, Private, UserAction = 100 }
  • void setAction ( Actiona )
  • Action action () const
  • QWidget * source () const
  • virtual const char * format ( intn = 0 ) const
  • virtual QByteArray encodedData ( constchar*format ) const
  • virtual bool provides ( constchar*mimeType ) const
  • QByteArray data ( constchar*f ) const (obsolete)
  • void setPoint ( constQPoint&np )

Detailed Description

The QDropEvent class provides an event which is sent when a drag and drop 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 widget should use data() to extract the data in an appropriate format.

See also Drag And Drop Classes and Event Classes.


Member Type Documentation

QDropEvent::Action

This enum describes the action which a source requests that a target perform with dropped data.

  • QDropEvent::Copy - The default action. The source simply uses the data provided in the operation.
  • QDropEvent::Link - The source should somehow create a link to the location specified by the data.
  • QDropEvent::Move - The source should somehow move the object from the location specified by the data to a new location.
  • QDropEvent::Private - The target has special knowledge of the MIME type, which the source should respond to in a similar way to a Copy.
  • QDropEvent::UserAction - 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

QDropEvent::QDropEvent ( constQPoint&pos, Typetyp = Drop )

Constructs a drop event that drops a drop of type typ on point pos.

void QDropEvent::accept ( booly = TRUE )

Call this function to indicate whether the event provided data which your widget processed. Set y to TRUE (the default) if your widget could process the data, otherwise set y to FALSE. To get the data, use encodedData(), or preferably, the decode() methods of existing QDragObject subclasses, such as QTextDrag::decode(), or your own subclasses.

Warning: To accept or reject the drop, don't call this function, call acceptAction() instead. This function indicates whether you processed the event at all.

See also acceptAction().

Example: iconview/simple_dd/main.cpp.

void QDropEvent::acceptAction ( booly = TRUE )

Call this to indicate that the action described by action() is accepted (i.e. if y 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).

Examples: dirview/dirview.cpp and fileiconview/qfileiconview.cpp.

Action QDropEvent::action () const

Returns the Action which the target is requesting to be performed with the data. If your application understands the action and can process the supplied data, call acceptAction(); if your application can process the supplied data but can only perform the Copy action, call accept().

Examples: dirview/dirview.cpp and fileiconview/qfileiconview.cpp.

QByteArray QDropEvent::data ( constchar*f ) const

This function is obsolete. It is provided to keep old source working. We strongly advise against using it in new code.

Use QDropEvent::encodedData().

QByteArray QDropEvent::encodedData ( constchar*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 format.

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

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

Reimplemented from QMimeSource.

const char * QDropEvent::format ( intn = 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().

See also data() and provides().

Example: iconview/main.cpp.

Reimplemented from QMimeSource.

void QDropEvent::ignore ()

The opposite of accept(), i.e. you have ignored the drop event.

Example: fileiconview/qfileiconview.cpp.

bool QDropEvent::isAccepted () const

Returns TRUE if the drop target accepts the event; otherwise returns FALSE.

bool QDropEvent::isActionAccepted () const

Returns TRUE if the drop action was accepted by the drop site; otherwise returns FALSE.

constQPoint& QDropEvent::pos () const

Returns the position where the drop was made.

Example: dirview/dirview.cpp.

bool QDropEvent::provides ( constchar*mimeType ) const [virtual]

Returns TRUE if this event provides format mimeType; otherwise returns FALSE.

See also data().

Example: fileiconview/qfileiconview.cpp.

Reimplemented from QMimeSource.

void QDropEvent::setAction ( Actiona )

Sets the action to a. This is used internally, you should not need to call this in your code: the source decides the action, not the target.

void QDropEvent::setPoint ( constQPoint&np )

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

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 drag object subclasses.

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

See QDragObject::QDragObject() and subclasses.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文