Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QMimeData类提供一个容器,用于数据记录有关它的MIME类型的信息。More...
继承QObject。
该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对象存储自定义数据:
QByteArray csvData = ...; QMimeData *mimeData = new QMimeData; mimeData->setData("text/csv", csvData);
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) } }
在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的口味。
构造一个新的MIME数据对象中没有任何数据。
删除所有在该对象的MIME类型和数据条目。
返回一个颜色,如果存储在所述对象数据代表颜色(MIME类型application/x-color) ,否则返回一个空的变体。
A QVariant被使用,因为QMimeData属于QtCore库,而QColor属于QtGui。若要转换QVariant到QColor,只需使用qvariant_cast( ) 。例如:
if (event->mimeData()->hasColor()) { QColor color = qvariant_cast<QColor>(event->mimeData()->colorData()); ... }
See also hasColor( )setColorData()和data( ) 。
返回存储在该对象中由指定的MIME类型所描述的格式的数据mimeType。
See also setData( ) 。
返回由对象所支持的格式列表。这是MIME类型的量,对象可以返回合适的数据的列表。在列表中的格式是一个优先顺序。
对于数据的最常见的类型,你可以调用高级功能hasText( )hasHtml( )hasUrls( )hasImage()和hasColor( )来代替。
See also hasFormat( )setData()和data( ) 。
返回True如果对象可以返回一个颜色( MIME类型application/x-color),否则返回False 。
See also setColorData( )colorData()和hasFormat( ) 。
返回True如果对象可以返回的数据由指定的MIME类型mimeType否则返回False 。
对于数据的最常见的类型,你可以调用高级功能hasText( )hasHtml( )hasUrls( )hasImage()和hasColor( )来代替。
See also formats( )setData()和data( ) 。
返回True如果对象可以返回的HTML ( MIME类型text/html),否则返回False 。
See also setHtml( )html()和hasFormat( ) 。
返回True如果对象可以返回一个图像,否则返回False 。
See also setImageData( )imageData()和hasFormat( ) 。
返回True如果对象可以返回纯文本( MIME类型text/plain),否则返回False 。
See also setText( )text( )hasHtml()和hasFormat( ) 。
返回True如果对象可以返回的URL列表,否则返回False 。
网址对应的MIME类型text/uri-list。
See also setUrls( )urls()和hasFormat( ) 。
返回一个字符串,如果存储在对象中的数据是HTML ( MIME类型text/html) ,否则返回一个空字符串。
See also setHtml( )hasHtml()和setData( ) 。
返回QVariant存储QImage如果该对象可以返回一个图像,否则返回一个空的变体。
A QVariant被使用,因为QMimeData属于QtCore库,而QImage属于QtGui。若要转换QVariant到QImage,只需使用qvariant_cast( ) 。例如:
if (event->mimeData()->hasImage()) { QImage image = qvariant_cast<QImage>(event->mimeData()->imageData()); ... }
See also setImageData()和hasImage( ) 。
删除数据条目mimeType在该对象。
此功能被引入Qt的4.4 。
返回一个变量与给定的type包含的数据由指定的MIME类型mimeType。如果对象不支持的MIME类型或特定变量类型,则返回一个空的变体来代替。
调用此函数由一般data( ) getter和通过便捷的getter (text( )html( )urls( )imageData()和colorData())。您可以重新实现它,如果你想使用一个自定义的数据结构,而不是一个(存储数据QByteArray,这是setData( )提供) 。那么你就还需要重新实现hasFormat()和formats( ) 。
See also data( ) 。
在对象的颜色数据设置为给定color。
颜色对应的MIME类型application/x-color。
See also colorData( )hasColor()和setData( ) 。
设置与由下式给出的MIME类型相关联的数据mimeType到指定的data。
对于数据的最常见的类型,你可以调用高级功能setText( )setHtml( )setUrls( )setImageData()和setColorData( )来代替。
请注意,如果你想使用自定义数据类型中的项目视图拖放操作,您必须注册为一个Qtmeta type使用Q_DECLARE_METATYPE()宏,并实现流运算符吧。流运营商然后必须与所登记的qRegisterMetaTypeStreamOperators()函数。
See also data( )hasFormat( )QMetaType和qRegisterMetaTypeStreamOperators( ) 。
Sets html作为HTML ( MIME类型text/html)用于表示数据。
See also html( )hasHtml( )setText()和setData( ) 。
在对象中的数据设置为给定image。
A QVariant被使用,因为QMimeData属于QtCore库,而QImage属于QtGui。从转换QImage至QVariant是隐式的。例如:
mimeData->setImageData(QImage("beautifulfjord.png"));
See also imageData( )hasImage()和setData( ) 。
Sets text作为纯文本( MIME类型text/plain)用于表示数据。
See also text( )hasText( )setHtml()和setData( ) 。
设置存储在MIME数据对象通过那些指定的URLurls。
网址对应的MIME类型text/uri-list。
See also urls( )hasUrls()和setData( ) 。
返回一个纯文本( MIME类型text/plain的数据)表示。
See also setText( )hasText( )html()和data( ) 。
返回包含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 |