- class QMimeData#
- QMimeData类提供了一个用于记录其MIME类型信息的容器。 更多信息...- 摘要#- 方法#- def - __init__()
- def - clear()
- def - colorData()
- def - data()
- def - hasColor()
- def - hasHtml()
- def - hasImage()
- def - hasText()
- def - hasUrls()
- def - html()
- def - imageData()
- def - removeFormat()
- def - setColorData()
- def - setData()
- def - setHtml()
- def - setImageData()
- def - setText()
- def - setUrls()
- def - text()
- def - urls()
 - 虚方法#- def - formats()
- def - hasFormat()
- def - retrieveData()
 - 注意 - 本文档可能包含自动从 C++ 转换为 Python 的代码段。我们始终欢迎对该代码段的翻译做出贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告知我们。 - 详细描述#- 警告 - 本节包含自动从 C++ 转换为 Python 的代码段,可能包含错误。 - QMimeData用于描述可存储在剪贴板中的信息,并通过拖放机制进行传输。- QMimeData对象将它们所持有的数据与其相应的 MIME 类型相关联,以确保信息可以在应用程序之间安全传输,并在同一应用程序内进行复制。- QMimeData对象通常使用- new创建,并供应给 QDrag 或 QClipboard 对象。这样做是为了使 Qt 能够管理它们所使用的内存。- 单个 - QMimeData对象可以同时使用几种不同的格式存储相同的数据。函数- formats()返回一个按优先顺序排列的可用格式列表。函数- data()返回与MIME类型关联的原始数据,而- setData()允许您为MIME类型设置数据。- 对于最常见的MIME类型, - QMimeData提供方便的函数来访问数据- Tester - Getter - Setter - MIME 类型 - text/plain- text/html- text/uri-list- image/*- application/x-color- 例如,如果您编写了一个接受URL拖拽的窗口,则您的代码可能如下所示 - def dragEnterEvent(self, event): if event.mimeData().hasUrls(): event.acceptProposedAction() def dropEvent(self, event): if event.mimeData().hasUrls(): for url in event.mimeData().urls(): ... - 在 - QMimeData对象中存储自定义数据有三种方法- 自定义数据可以直接作为 - QMimeData对象中的- QByteArray存储,使用- setData()。例如- csvData = ... mimeData = QMimeData() mimeData.setData("text/csv", csvData) 
- 我们可以从 - QMimeData派生出子类并重写- hasFormat()、- formats()和- retrieveData()。
- 如果在单个应用程序内发生拖放操作,我们可以从 - QMimeData派生子类并在其中添加额外的数据,然后在接收者的拖放事件处理器中使用- qobject_cast()。例如- def dropEvent(self, event): myData = MyMimeData(event.mimeData()) if myData: # access myData's data directly (not through QMimeData's API) 
 - 平台特定MIME类型#- 在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声明描述了数据编码的方式。- 在某些情况下(例如删除多个电子邮件附件),可能存在多个数据值。可以通过添加一个 - index值来访问它们。- application/x-qt-windows-mime;value="FileContents";index=0 application/x-qt-windows-mime;value="FileContents";index=1 - 在 Windows 上,MIME 格式并不总是直接对应于剪贴板格式。Qt 提供了 QWindowsMimeConverter,用于将剪贴板格式映射到开放标准的 MIME 格式。 类似地,QUtiMimeConverter 在 macOS 和 iOS 上将 MIME 映射到统一的类型标识符。 - 参见 - QClipboardQDragEnterEventQDragMoveEventQDropEventQDragDrag 和 Drop- __init__()#
 - 构建一个不包含数据的新的 MIME 数据对象。 - clear()#
 - 从对象中移除所有 MIME 类型和数据条目。 - colorData()#
- 返回类型::
- 对象 
 
 - 警告 - 本节包含自动从 C++ 转换为 Python 的代码段,可能包含错误。 - 如果对象中存储的数据代表颜色(MIME 类型为 - application/x-color),则返回颜色;否则返回空变体。- 使用 - QVariant,因为- QMimeData属于 Qt Core 模块,而 QColor 属于 Qt GUI。要将- QVariant转换为 QColor,请简单地使用- qvariant_cast()。例如:- if event.mimeData().hasColor(): color = QColor(event.mimeData().colorData()) ... - data(mimetype)#
- 参数::
- mimetype – 字符串 
- 返回类型::
 
 - 返回对象中存储的数据,格式由通过 - mimetype指定 MIME 类型描述。- 参见 - formats()#
- 返回类型::
- 字符串列表 
 
 - 返回对象支持的一组格式列表。这是对象可以返回的适合数据的 MIME 类型列表。列表中的格式按优先级排序。 - 对于最常见的类型的数据,您可以调用以下高级函数: - hasText()、- hasHtml()、- hasUrls()、- hasImage()和- hasColor()代替。- hasColor()#
- 返回类型::
- bool 
 
 - 如果该对象可以返回颜色(MIME 类型 - application/x-color),则返回- true;否则返回- false。- hasFormat(mimetype)#
- 参数::
- mimetype – 字符串 
- 返回类型::
- bool 
 
 - 如果对象可以返回指定 MIME 类型的数据,则返回 - true;否则返回- false。- 对于最常见的类型的数据,您可以调用以下高级函数: - hasText()、- hasHtml()、- hasUrls()、- hasImage()和- hasColor()代替。- hasHtml()#
- 返回类型::
- bool 
 
 - 如果对象可以返回 HTML(MIME 类型 - text/html),则返回- true;否则返回- false。- hasImage()#
- 返回类型::
- bool 
 
 - 如果对象可以返回图像,则返回 - true;否则返回- false。- hasText()#
- 返回类型::
- bool 
 
 - 如果对象可以返回纯文本(MIME类型 - text/plain),则返回- true;否则返回- false。- hasUrls()#
- 返回类型::
- bool 
 
 - 如果对象可以返回URL列表,则返回 - true;否则返回- false。- URL对应于MIME类型 - text/uri-list。- html()#
- 返回类型::
- str 
 
 - 如果对象存储的数据是HTML(MIME类型 - text/html),则返回一个字符串;否则返回一个空字符串。- imageData()#
- 返回类型::
- 对象 
 
 - 警告 - 本节包含自动从 C++ 转换为 Python 的代码段,可能包含错误。 - 如果对象可以返回图像,则返回存储 - QImage的- QVariant;否则返回一个空变量。- 由于 - QMimeData属于 Qt 核心模块,而 QImage 属于 Qt 图形界面模块,因此使用- QVariant。要将- QVariant转换为 QImage,只需使用- qvariant_cast()即可。例如:- if event.mimeData().hasImage(): image = QImage(event.mimeData().imageData()) ... - removeFormat(mimetype)#
- 参数::
- mimetype – 字符串 
 
 - 从对象中删除 - mimetype的数据条目。- 返回一个包含由指定 - mimetype确定的数据类型为给定类型的 variant。如果对象不支持指定的 MIME 类型或 variant 类型,则返回一个空 variant。- 此函数由通用 - data()getter 和便利 getter(- text(),- html(),- urls(),- imageData(), 和- colorData())调用。如果您想使用自定义数据结构存储数据(而不是- QByteArray,这是- setData()提供的)。那时,您还需要重新实现- hasFormat()和- formats()。- 参见 - setColorData(color)#
- 参数::
- color – 对象 
 
 - 将对象中的颜色数据设置为指定的 - color。- 颜色类型对应于 MIME 类型 - application/x-color。- setData(mimetype, data)#
- 参数::
- mimetype – 字符串 
- data – - QByteArray
 
 
 - 将基于 - mimetype的 MIME 类型相关联的数据设置为指定的- data。- 对于最常见的数据类型,您还可以调用更高级的函数 - setText()、- setHtml()、- setUrls()、- setImageData()和- setColorData()。- 注意,如果您想在拖放操作中使用自定义数据类型,必须使用 - Q_DECLARE_METATYPE()宏将其注册为 Qt- meta type,并为其实现流操作。- 参见 - data()- hasFormat()- QMetaType- Q_DECLARE_METATYPE()- setHtml(html)#
- 参数::
- html – 字符串 
 
 - 将 - html设置为用于表示数据的 HTML(MIME 类型为- text/html)。- setImageData(image)#
- 参数::
- image – 对象 
 
 - 警告 - 本节包含自动从 C++ 转换为 Python 的代码段,可能包含错误。 - 将对象的内部数据设置为给定的 - image。- 由于 - QMimeData属于 Qt 核心模块,而- QImage属于 Qt GUI,因此使用- QVariant。从- QImage到- QVariant的转换是隐式的。例如- mimeData.setImageData(QImage("beautifulfjord.png")) - setText(text)#
- 参数::
- text – 字符串 
 
 - 将文本设置为用于表示数据的纯文本(MIME类型 - text/plain)。- setUrls(urls)#
- 参数::
- urls – QUrl 列表 
 
 - 将 MIME 数据对象中存储的 URL 设置为通过 - urls指定的 URL。- URL对应于MIME类型 - text/uri-list。- 从 Qt 5.0 开始,如果在此之前未调用 - setText,则 setUrls 也会导出作为纯文本的 urls,以便将它们放入任何单行编辑器和文本编辑器。- text()#
- 返回类型::
- str 
 
 - 返回数据的纯文本表示形式(MIME类型 - text/plain)。- 返回MIME数据对象中包含的URL列表。 - URL对应于MIME类型 - text/uri-list。