QUtiMimeConverter 类
QUtiMimeConverter 类可以将 MIME 类型与 统一类型标识符 (UTI) 格式进行转换。 更多...
头文件 | #include <QUtiMimeConverter> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
从 | Qt 6.5 |
公共类型
flags | HandlerScope |
公共函数
QUtiMimeConverter() | |
虚拟 | ~QUtiMimeConverter() |
bool | canConvert(const QString &mime, const QString &uti) const |
虚拟 QList<QByteArray> | convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const = 0 |
虚拟 QVariant | convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const = 0 |
虚拟 int | count(const QMimeData *mimeData) const |
虚拟 QString | mimeForUti(const QString &uti) const = 0 |
虚拟 QString | utiForMime(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
如果转换器可以在mime 和 uti 之间双向转换,则返回 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公司及/或其他国家的商标。所有其他商标均为其各自所有者的财产。