QtBase  v6.3.1
Public Member Functions | Protected Member Functions | List of all members
QMimeData Class Reference

The QMimeData class provides a container for data that records information about its MIME type. More...

#include <qmimedata.h>

Inheritance diagram for QMimeData:
Inheritance graph
[legend]
Collaboration diagram for QMimeData:
Collaboration graph
[legend]

Public Member Functions

 QMimeData ()
 
 ~QMimeData ()
 
QList< QUrlurls () const
 
void setUrls (const QList< QUrl > &urls)
 
bool hasUrls () const
 
QString text () const
 
void setText (const QString &text)
 
bool hasText () const
 
QString html () const
 
void setHtml (const QString &html)
 
bool hasHtml () const
 
QVariant imageData () const
 
void setImageData (const QVariant &image)
 
bool hasImage () const
 
QVariant colorData () const
 
void setColorData (const QVariant &color)
 
bool hasColor () const
 
QByteArray data (const QString &mimetype) const
 
void setData (const QString &mimetype, const QByteArray &data)
 
void removeFormat (const QString &mimetype)
 
virtual bool hasFormat (const QString &mimetype) const
 
virtual QStringList formats () const
 
void clear ()
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 
virtual ~QObject ()
 
virtual bool event (QEvent *event)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const
 
void setObjectName (const QString &name)
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 
bool isWindowType () const
 
bool signalsBlocked () const noexcept
 
bool blockSignals (bool b) noexcept
 
QThreadthread () const
 
void moveToThread (QThread *thread)
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 
template<typename T >
T findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
template<typename T >
QList< TfindChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
template<typename T >
QList< TfindChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 
const QObjectListchildren () const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 
void dumpObjectInfo () const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 
bool inherits (const char *classname) const
 

Protected Member Functions

virtual QVariant retrieveData (const QString &mimetype, QMetaType preferredType) const
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
 
static QMetaObject::Connection ::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 slot)
 
static QMetaObject::Connection ::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *context, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static std::enable_if< QtPrivate::FunctionPointer< Func2 >::ArgumentCount==-1 &&!std::is_convertible_v< Func2, const char * >, QMetaObject::Connection >::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 slot)
 
template<typename Func1 , typename Func2 >
static std::enable_if< QtPrivate::FunctionPointer< Func2 >::ArgumentCount==-1 &&!std::is_convertible_v< Func2, const char * >, QMetaObject::Connection >::type connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *context, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object More...
 

Detailed Description

The QMimeData class provides a container for data that records information about its MIME type.

\inmodule QtCore

QMimeData is used to describe information that can be stored in the \l{QClipboard}{clipboard}, and transferred via the \l{drag and drop} mechanism. QMimeData objects associate the data that they hold with the corresponding MIME types to ensure that information can be safely transferred between applications, and copied around within the same application.

QMimeData objects are usually created using new and supplied to QDrag or QClipboard objects. This is to enable Qt to manage the memory that they use.

A single QMimeData object can store the same data using several different formats at the same time. The formats() function returns a list of the available formats in order of preference. The data() function returns the raw data associated with a MIME type, and setData() allows you to set the data for a MIME type.

For the most common MIME types, QMimeData provides convenience functions to access the data:

\table \header

For example, if your write a widget that accepts URL drags, you would end up writing code like this:

There are three approaches for storing custom data in a QMimeData object:

\list 1

\endlist

Definition at line 51 of file qmimedata.h.

Constructor & Destructor Documentation

◆ QMimeData()

QMimeData::QMimeData ( )

Constructs a new MIME data object with no data in it.

Definition at line 331 of file qmimedata.cpp.

◆ ~QMimeData()

QMimeData::~QMimeData ( )

Destroys the MIME data object.

Definition at line 339 of file qmimedata.cpp.

Member Function Documentation

◆ clear()

void QMimeData::clear ( )

Removes all the MIME type and data entries in the object.

Definition at line 677 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ colorData()

QVariant QMimeData::colorData ( ) const

Returns a color if the data stored in the object represents a color (MIME type application/x-color); otherwise returns a null variant.

A QVariant is used because QMimeData belongs to the Qt Core module, whereas QColor belongs to Qt GUI. To convert the QVariant to a QColor, simply use qvariant_cast(). For example:

See also
hasColor(), setColorData(), data()

Definition at line 539 of file qmimedata.cpp.

◆ data()

QByteArray QMimeData::data ( const QString mimeType) const

Returns the data stored in the object in the format described by the MIME type specified by mimeType.

Definition at line 574 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ formats()

QStringList QMimeData::formats ( ) const
virtual

Returns a list of formats supported by the object. This is a list of MIME types for which the object can return suitable data. The formats in the list are in a priority order.

For the most common types of data, you can call the higher-level functions hasText(), hasHtml(), hasUrls(), hasImage(), and hasColor() instead.

See also
hasFormat(), setData(), data()

Reimplemented in QTextEditMimeData, QQnxClipboard::MimeData, QIOSMimeData, QInternalMimeData, and QMacPasteboardMimeSource.

Definition at line 642 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ hasColor()

bool QMimeData::hasColor ( ) const

Returns true if the object can return a color (MIME type application/x-color); otherwise returns false.

See also
setColorData(), colorData(), hasFormat()

Definition at line 565 of file qmimedata.cpp.

Here is the call graph for this function:

◆ hasFormat()

bool QMimeData::hasFormat ( const QString mimeType) const
virtual

Returns true if the object can return data for the MIME type specified by mimeType; otherwise returns false.

For the most common types of data, you can call the higher-level functions hasText(), hasHtml(), hasUrls(), hasImage(), and hasColor() instead.

See also
formats(), setData(), data()

Reimplemented in QQnxClipboard::MimeData, and QInternalMimeData.

Definition at line 626 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasHtml()

bool QMimeData::hasHtml ( ) const

Returns true if the object can return HTML (MIME type text/html); otherwise returns false.

See also
setHtml(), html(), hasFormat()

Definition at line 475 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasImage()

bool QMimeData::hasImage ( ) const

Returns true if the object can return an image; otherwise returns false.

See also
setImageData(), imageData(), hasFormat()

Definition at line 521 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasText()

bool QMimeData::hasText ( ) const

Returns true if the object can return plain text (MIME type text/plain); otherwise returns false.

See also
setText(), text(), hasHtml(), hasFormat()

Definition at line 439 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasUrls()

bool QMimeData::hasUrls ( ) const

Returns true if the object can return a list of urls; otherwise returns false.

URLs correspond to the MIME type text/uri-list.

See also
setUrls(), urls(), hasFormat()

Definition at line 398 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ html()

QString QMimeData::html ( ) const

Returns a string if the data stored in the object is HTML (MIME type text/html); otherwise returns an empty string.

See also
hasHtml(), setData()

Definition at line 450 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ imageData()

QVariant QMimeData::imageData ( ) const

Returns a QVariant storing a QImage if the object can return an image; otherwise returns a null variant.

A QVariant is used because QMimeData belongs to the Qt Core module, whereas QImage belongs to Qt GUI. To convert the QVariant to a QImage, simply use qvariant_cast(). For example:

See also
hasImage()

Definition at line 492 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ removeFormat()

void QMimeData::removeFormat ( const QString mimeType)
Since
4.4

Removes the data entry for mimeType in the object.

Definition at line 688 of file qmimedata.cpp.

◆ retrieveData()

QVariant QMimeData::retrieveData ( const QString mimeType,
QMetaType  type 
) const
protectedvirtual

Returns a variant with the given type containing data for the MIME type specified by mimeType. If the object does not support the MIME type or variant type given, a null variant is returned instead.

This function is called by the general data() getter and by the convenience getters (text(), html(), urls(), imageData(), and colorData()). You can reimplement it if you want to store your data using a custom data structure (instead of a QByteArray, which is what setData() provides). You would then also need to reimplement hasFormat() and formats().

See also
data()

Reimplemented in QTextEditMimeData, QIOSMimeData, QInternalMimeData, QQnxClipboard::MimeData, and QMacPasteboardMimeSource.

Definition at line 667 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setColorData()

void QMimeData::setColorData ( const QVariant color)

Sets the color data in the object to the given color.

Colors correspond to the MIME type application/x-color.

See also
hasColor(), setData()

Definition at line 552 of file qmimedata.cpp.

◆ setData()

void QMimeData::setData ( const QString mimeType,
const QByteArray data 
)

Sets the data associated with the MIME type given by mimeType to the specified data.

For the most common types of data, you can call the higher-level functions setText(), setHtml(), setUrls(), setImageData(), and setColorData() instead.

Note that if you want to use a custom data type in an item view drag and drop operation, you must register it as a Qt \l{QMetaType}{meta type}, using the Q_DECLARE_METATYPE() macro, and implement stream operators for it.

See also
hasFormat(), QMetaType, {QMetaType::}{Q_DECLARE_METATYPE()}

Definition at line 595 of file qmimedata.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setHtml()

void QMimeData::setHtml ( const QString html)

Sets html as the HTML (MIME type text/html) used to represent the data.

See also
hasHtml(), setText(), setData()

Definition at line 463 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ setImageData()

void QMimeData::setImageData ( const QVariant image)

Sets the data in the object to the given image.

A QVariant is used because QMimeData belongs to the Qt Core module, whereas QImage belongs to Qt GUI. The conversion from QImage to QVariant is implicit. For example:

See also
hasImage(), setData()

Definition at line 509 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ setText()

void QMimeData::setText ( const QString text)

Sets text as the plain text (MIME type text/plain) used to represent the data.

See also
hasText(), setHtml(), setData()

Definition at line 427 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ setUrls()

void QMimeData::setUrls ( const QList< QUrl > &  urls)

Sets the URLs stored in the MIME data object to those specified by urls.

URLs correspond to the MIME type text/uri-list.

Since Qt 5.0, setUrls also exports the urls as plain text, if setText was not called before, to make it possible to drop them into any lineedit and text editor.

See also
hasUrls(), setData()

Definition at line 378 of file qmimedata.cpp.

Here is the call graph for this function:

◆ text()

QString QMimeData::text ( ) const

Returns a plain text (MIME type text/plain) representation of the data.

See also
hasText(), html(), data()

Definition at line 410 of file qmimedata.cpp.

Here is the caller graph for this function:

◆ urls()

QList< QUrl > QMimeData::urls ( ) const

Returns a list of URLs contained within the MIME data object.

URLs correspond to the MIME type text/uri-list.

See also
hasUrls(), data()

Definition at line 350 of file qmimedata.cpp.

Here is the caller graph for this function:

The documentation for this class was generated from the following files: