Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QMimeData Class Reference
[QtCore module]

该QMimeData类提供一个容器,用于数据记录有关它的MIME类型的信息。More...

继承QObject

Methods


Detailed Description

该QMimeData类提供一个容器,用于数据记录有关它的MIME类型的信息。

QMimeData是用来描述可以存储在信息clipboard,并经由传输drag and drop机制。 QMimeData对象,它们与相应的MIME类型保存数据关联起来,以确保信息可以在应用程序之间进行安全转移,并在同一应用程序内各地复制。

通常使用创建QMimeData对象new并供给到QDrag or QClipboard对象。这是为了让Qt的管理他们所使用的内存。

单个QMimeData对象可以使用几种不同的格式的同时存储相同的数据。该formats( )函数返回按优先顺序排列的可用格式的列表。该data( )函数返回一个MIME类型相关联的原始数据,并setData()允许您设置一个MIME类型的数据。

对于最常见的MIME类型, QMimeData提供方便的功能来访问数据:

Tester Getter Setter MIME Types
hasText() text() setText() text/plain
hasHtml() html() setHtml() text/html
hasUrls() urls() setUrls() text/uri-list
hasImage() imageData() setImageData() image/ *
hasColor() colorData() setColorData() application/x-color

例如,如果你写一个接受URL的小工具拖拽,你最终会编写这样的代码:

 void MyWidget.dragEnterEvent(QDragEnterEvent *event)
 {
     if (event->mimeData()->hasUrls())
         event->acceptProposedAction();
 }

 void MyWidget.dropEvent(QDropEvent *event)
 {
     if (event->mimeData()->hasUrls()) {
         foreach (QUrl url, event->mimeData()->urls()) {
             ...
         }
     }
 }

有三种方法用于在QMimeData对象存储自定义数据:

  1. 自定义数据可以直接存储在一个QMimeData对象作为QByteArray using setData( ) 。例如:
     QByteArray csvData = ...;
    
     QMimeData *mimeData = new QMimeData;
     mimeData->setData("text/csv", csvData);
    
  2. 我们可以继承QMimeData和重新实现hasFormat( )formats()和retrieveData( ) 。
  3. 如果发生在一个单一的应用程序中的拖放操作,我们可以继承QMimeData ,并在其中添加额外的数据,并使用qobject_cast( )在接收器的放置事件处理程序。例如:
     void MyWidget.dropEvent(QDropEvent *event)
     {
         const MyMimeData *myData =
                 qobject_cast<const MyMimeData *>(event->mimeData());
         if (myData) {
             // access myData's data directly (not through QMimeData's API)
         }
     }
    

Platform-Specific MIME Types

在Windows上,formats( )也将返回的MIME数据可自定义格式,使用x-qt-windows-mime亚型,表明它们代表了非标准格式的数据。该格式将采取以下形式:

 application/x-qt-windows-mime;value="<custom type>"

下面是自定义MIME类型的示例:

 application/x-qt-windows-mime;value="FileGroupDescriptor"
 application/x-qt-windows-mime;value="FileContents"

value声明的每个格式的描述,其中的数据被编码的方式。

在Windows上, MIME格式并不总是直接映射到剪贴板格式。 Qt提供QWindowsMime映射的剪贴板格式,打开标准的MIME格式。类似地,QMacPasteboardMimeMIME映射到Mac的口味。


Method Documentation

QMimeData.__init__ (self)

构造一个新的MIME数据对象中没有任何数据。

QMimeData.clear (self)

删除所有在该对象的MIME类型和数据条目。

QVariant QMimeData.colorData (self)

返回一个颜色,如果存储在所述对象数据代表颜色(MIME类型application/x-color) ,否则返回一个空的变体。

A QVariant被使用,因为QMimeData属于QtCore库,而QColor属于QtGui。若要转换QVariantQColor,只需使用qvariant_cast( ) 。例如:

 if (event->mimeData()->hasColor()) {
     QColor color = qvariant_cast<QColor>(event->mimeData()->colorData());
     ...
 }

See also hasColor( )setColorData()和data( ) 。

QByteArray QMimeData.data (self, QString mimetype)

返回存储在该对象中由指定的MIME类型所描述的格式的数据mimeType

See also setData( ) 。

QStringList QMimeData.formats (self)

返回由对象所支持的格式列表。这是MIME类型的量,对象可以返回合适的数据的列表。在列表中的格式是一个优先顺序。

对于数据的最常见的类型,你可以调用高级功能hasText( )hasHtml( )hasUrls( )hasImage()和hasColor( )来代替。

See also hasFormat( )setData()和data( ) 。

bool QMimeData.hasColor (self)

返回True如果对象可以返回一个颜色( MIME类型application/x-color),否则返回False 。

See also setColorData( )colorData()和hasFormat( ) 。

bool QMimeData.hasFormat (self, QString mimetype)

返回True如果对象可以返回的数据由指定的MIME类型mimeType否则返回False 。

对于数据的最常见的类型,你可以调用高级功能hasText( )hasHtml( )hasUrls( )hasImage()和hasColor( )来代替。

See also formats( )setData()和data( ) 。

bool QMimeData.hasHtml (self)

返回True如果对象可以返回的HTML ( MIME类型text/html),否则返回False 。

See also setHtml( )html()和hasFormat( ) 。

bool QMimeData.hasImage (self)

返回True如果对象可以返回一个图像,否则返回False 。

See also setImageData( )imageData()和hasFormat( ) 。

bool QMimeData.hasText (self)

返回True如果对象可以返回纯文本( MIME类型text/plain),否则返回False 。

See also setText( )text( )hasHtml()和hasFormat( ) 。

bool QMimeData.hasUrls (self)

返回True如果对象可以返回的URL列表,否则返回False 。

网址对应的MIME类型text/uri-list

See also setUrls( )urls()和hasFormat( ) 。

QString QMimeData.html (self)

返回一个字符串,如果存储在对象中的数据是HTML ( MIME类型text/html) ,否则返回一个空字符串。

See also setHtml( )hasHtml()和setData( ) 。

QVariant QMimeData.imageData (self)

返回QVariant存储QImage如果该对象可以返回一个图像,否则返回一个空的变体。

A QVariant被使用,因为QMimeData属于QtCore库,而QImage属于QtGui。若要转换QVariantQImage,只需使用qvariant_cast( ) 。例如:

 if (event->mimeData()->hasImage()) {
     QImage image = qvariant_cast<QImage>(event->mimeData()->imageData());
     ...
 }

See also setImageData()和hasImage( ) 。

QMimeData.removeFormat (self, QString mimetype)

删除数据条目mimeType在该对象。

此功能被引入Qt的4.4 。

QVariant QMimeData.retrieveData (self, QString mimetype, Type preferredType)

返回一个变量与给定的type包含的数据由指定的MIME类型mimeType。如果对象不支持的MIME类型或特定变量类型,则返回一个空的变体来代替。

调用此函数由一般data( ) getter和通过便捷的getter (text( )html( )urls( )imageData()和colorData())。您可以重新实现它,如果你想使用一个自定义的数据结构,而不是一个(存储数据QByteArray,这是setData( )提供) 。那么你就还需要重新实现hasFormat()和formats( ) 。

See also data( ) 。

QMimeData.setColorData (self, QVariant color)

在对象的颜色数据设置为给定color

颜色对应的MIME类型application/x-color

See also colorData( )hasColor()和setData( ) 。

QMimeData.setData (self, QString mimetype, QByteArray data)

设置与由下式给出的MIME类型相关联的数据mimeType到指定的data

对于数据的最常见的类型,你可以调用高级功能setText( )setHtml( )setUrls( )setImageData()和setColorData( )来代替。

请注意,如果你想使用自定义数据类型中的项目视图拖放操作,您必须注册为一个Qtmeta type使用Q_DECLARE_METATYPE()宏,并实现流运算符吧。流运营商然后必须与所登记的qRegisterMetaTypeStreamOperators()函数。

See also data( )hasFormat( )QMetaTypeqRegisterMetaTypeStreamOperators( ) 。

QMimeData.setHtml (self, QString html)

Sets html作为HTML ( MIME类型text/html)用于表示数据。

See also html( )hasHtml( )setText()和setData( ) 。

QMimeData.setImageData (self, QVariant image)

在对象中的数据设置为给定image

A QVariant被使用,因为QMimeData属于QtCore库,而QImage属于QtGui。从转换QImageQVariant是隐式的。例如:

 mimeData->setImageData(QImage("beautifulfjord.png"));

See also imageData( )hasImage()和setData( ) 。

QMimeData.setText (self, QString text)

Sets text作为纯文本( MIME类型text/plain)用于表示数据。

See also text( )hasText( )setHtml()和setData( ) 。

QMimeData.setUrls (self, list-of-QUrl urls)

设置存储在MIME数据对象通过那些指定的URLurls

网址对应的MIME类型text/uri-list

See also urls( )hasUrls()和setData( ) 。

QString QMimeData.text (self)

返回一个纯文本( MIME类型text/plain的数据)表示。

See also setText( )hasText( )html()和data( ) 。

list-of-QUrl QMimeData.urls (self)

返回包含MIME数据对象中的URL列表。

网址对应的MIME类型text/uri-list

See also setUrls( )hasUrls()和data( ) 。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5