[QtCore module]
该QMimeData类提供一个容器,用于数据记录有关它的MIME类型的信息。More…
继承QObject。
Methods
__init__ (self)
clear (self)
QVariant colorData (self)
QByteArray data (self, QString mimetype)
QStringList formats (self)
bool hasColor (self)
bool hasFormat (self, QString mimetype)
bool hasHtml (self)
bool hasImage (self)
bool hasText (self)
bool hasUrls (self)
QString html (self)
QVariant imageData (self)
removeFormat (self, QString mimetype)
QVariant retrieveData (self, QString mimetype, Type preferredType)
setColorData (self, QVariant color)
setData (self, QString mimetype, QByteArray data)
setHtml (self, QString html)
setImageData (self, QVariant image)
setText (self, QString text)
setUrls (self, list-of-QUrl urls)
QString text (self)
list-of-QUrl urls (self)
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](docs_qdragenterevent.html) *event)
{
if (event->mimeData()->hasUrls())
event->acceptProposedAction();
}
void MyWidget.dropEvent([QDropEvent](docs_qdropevent.html) *event)
{
if (event->mimeData()->hasUrls()) {
foreach ([QUrl](docs_qurl.html) url, event->mimeData()->urls()) {
...
}
}
}
有三种方法用于在QMimeData对象存储自定义数据:
- 自定义数据可以直接存储在一个QMimeData对象作为QByteArray using setData( ) 。例如:
[QByteArray](docs_qbytearray.html) csvData = ...;
QMimeData *mimeData = new QMimeData;
mimeData->setData("text/csv", csvData);
- 我们可以继承QMimeData和重新实现hasFormat( )formats()和retrieveData( ) 。
- 如果发生在一个单一的应用程序中的拖放操作,我们可以继承QMimeData ,并在其中添加额外的数据,并使用qobject_cast( )在接收器的放置事件处理程序。例如:
void MyWidget.dropEvent([QDropEvent](docs_qdropevent.html) *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。若要转换QVariant到QColor,只需使用qvariant_cast( ) 。例如:
if (event->mimeData()->hasColor()) {
[QColor](docs_qcolor.html) color = qvariant_cast<[QColor](docs_qcolor.html)>(event->mimeData()->colorData());
...
}
See also hasColor( )setColorData()和data( ) 。
QByteArray QMimeData.data (self, QString mimetype)
[
返回存储在该对象中由指定的MIME类型所描述的格式的数据mimeType。
](docs_qbytearray.html)
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。若要转换QVariant到QImage,只需使用qvariant_cast( ) 。例如:
if (event->mimeData()->hasImage()) {
[QImage](docs_qimage.html) image = qvariant_cast<[QImage](docs_qimage.html)>(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( )QMetaType和qRegisterMetaTypeStreamOperators( ) 。
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。从转换QImage至QVariant是隐式的。例如:
mimeData->setImageData([QImage](docs_qimage.html)("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
。