QUtiMimeConverter 类

QUtiMimeConverter 类可以将 MIME 类型与 统一类型标识符 (UTI) 格式进行转换。 更多...

头文件 #include <QUtiMimeConverter>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
Qt 6.5

公共类型

公共函数

QUtiMimeConverter()
虚拟~QUtiMimeConverter()
boolcanConvert(const QString &mime, const QString &uti) const
虚拟 QList<QByteArray>convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const = 0
虚拟 QVariantconvertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const = 0
虚拟 intcount(const QMimeData *mimeData) const
虚拟 QStringmimeForUti(const QString &uti) const = 0
虚拟 QStringutiForMime(const QString &mime) const = 0

详细描述

Qt 的拖放和剪贴板设施使用 MIME 标准。在 X11 上,这直接映射到 Xdnd 协议。在 Mac 上,尽管某些应用程序使用 MIME 来描述剪贴板内容,但更常见的做法是使用苹果的 UTI 格式。

QUtiMimeConverter 的作用是弥合 MIME 和 UTI 之间的差距;通过此类子类化,可以扩展 Qt 的拖放和剪贴板处理,以转换到和从不受支持或专有的 UTI 格式。

在实例化 QGuiApplication 之后构建您的转换器实现实例

int main(int argc, char **argv)
{
    QGuiApplication app(argc, argv);
    JsonMimeConverter jsonConverter;
}

销毁实例将注销转换器并删除转换支持。也可以堆分配转换器实例;Qt 负责对象所有权,并在 QGuiApplication 关闭时删除转换器对象。

Qt 已定义以下 UTI 的支持

  • public.utf8-plain-text - 转换为 "text/plain"
  • public.utf16-plain-text - 转换为 "text/plain"
  • public.text - 转换为 "text/plain"
  • public.html - 转换为 "text/html"
  • public.url - 转换为 "text/uri-list"
  • public.file-url - 转换为 "text/uri-list"
  • public.tiff - 转换为 "application/x-qt-image"
  • public.vcard - 转换为 "text/plain"
  • com.apple.traditional-mac-plain-text - 转换为 "text/plain"
  • com.apple.pict - 转换为 "application/x-qt-image"

在与MIME数据一起工作时,Qt将对所有QUtiMimeConverter实例进行迭代,以找到可以转换为或从特定MIME类型转换的实例。它会通过在各个实例上调用mimeForUti() 或 utiForMime()来实现,从最后一次创建的实例开始(并选择)第一个。实际的转换将通过使用convertToMime() 和 convertFromMime()来完成。

成员函数文档

QUtiMimeConverter::QUtiMimeConverter

构建一个新的转换对象,并将其添加到全局可访问的转换器列表中。

在创建QGuiApplication之后调用此构造函数。

[virtual noexcept] QUtiMimeConverter::~QUtiMimeConverter

销毁一个转换对象,并从中移除全局转换器列表。

bool QUtiMimeConverter::canConvert

如果转换器可以在mimeuti 之间双向转换,则返回 true;否则返回 false

虚拟纯虚[pure virtual] QList<QByteArray> QUtiMimeConverter::convertFromMime

返回从MIME类型mixed转换为Mac UTIuti的数据。

注意,Mac UTI必须全部是自我终止的。返回值可能包含尾随数据。

所有子类都必须重新实现此纯虚函数。

虚拟纯虚[pure virtual] QVariant QUtiMimeConverter::convertToMime

返回从Mac UTIuti转换为MIME类型mixed的数据。

注意,Mac UTI必须全部是自我终止的。输入数据 puede包含尾随数据。

所有子类都必须重新实现此纯虚函数。

虚拟[virtual] int QUtiMimeConverter::count

返回给定mimeData的项目计数

虚拟纯虚[pure virtual] QString QUtiMimeConverter::mimeForUti

返回用于Mac UTIuti的MIME类型,如果此转换器不支持从uti转换,则返回空字符串。

所有子类都必须重新实现此纯虚函数。

[纯虚函数] QString QUtiMimeConverter::utiForMime(const QString &mime) const

返回用于MIME类型 mime 的Mac UTI,如果此转换器不支持从 mime 转换,则返回空字符串。

所有子类都必须重新实现此纯虚函数。

© 2024 Qt公司有限公司。本文件中包含的文档贡献的版权归其各自的拥有者。本文件提供的文档是根据自由软件基金会的公布,受GNU自由文档许可证版本1.3的条款管理。Qt及其相关标志是芬兰Qt公司及/或其他国家的商标。所有其他商标均为其各自所有者的财产。