Класс QWinMime
Класс QWinMime сопоставляет стандартные MIME типы с форматами буфера обмена Windows. Подробнее...
| Заголовок: | #include <QWinMime> |
| qmake: | QT += winextras |
| С версии: | Qt 5.4 |
Открытые функции
| QWinMime() | |
| virtual | ~QWinMime() |
| virtual bool | canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const = 0 |
| virtual bool | canConvertToMime(const QString &mimeType, int *pDataObj) const = 0 |
| virtual bool | convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const = 0 |
| virtual QVariant | convertToMime(const QString &mimeType, int *pDataObj, QVariant::Type preferredType) const = 0 |
| virtual QVector<FORMATETC> | formatsForMime(const QString &mimeType, const QMimeData *mimeData) const = 0 |
| virtual QString | mimeForFormat(const FORMATETC &formatetc) const = 0 |
Статические открытые члены
| int | registerMimeType(const QString &mime) |
Подробное описание
Класс QWinMime сопоставляет стандартные MIME типы с форматами буфера обмена Windows.
Функционал перетаскивания и буфера обмена Qt использует стандарт MIME. В X11 это сопоставляется тривиально с протоколом Xdnd, но в Windows, хотя некоторые приложения используют MIME типы для описания форматов буфера обмена, другие используют произвольные нестандартизированные соглашения об именах или встроенные в Windows форматы без имени.
Создавая подклассы QWinMime, которые предоставляют преобразования между форматами буфера обмена Windows и MIME, можно преобразовывать проприетарные форматы буфера обмена в MIME форматы.
Qt предоставляет предварительную поддержку следующих форматов буфера обмена Windows:
| Формат Windows | Эквивалентный MIME тип |
|---|---|
CF_UNICODETEXT |
text/plain |
CF_TEXT |
text/plain |
CF_DIB |
image/xyz, где xyz — формат изображения Qt
|
CF_HDROP |
text/uri-list |
CF_INETURL |
text/uri-list |
CF_HTML |
text/html |
Пример использования этого класса — сопоставление формата метафайла Windows (CF_METAFILEPICT) с MIME типом image/x-wmf. Это преобразование может быть просто добавлением или удалением заголовка, или даже просто передачей данных. См. Перетаскивание для получения дополнительной информации о выборе и определении MIME типов.
Можно проверить, преобразуется ли MIME тип, используя canConvertFromMime(), и выполнить преобразования с помощью convertToMime() и convertFromMime().
Документация по функциям-членам
QWinMime::QWinMime()
Создаёт новый объект преобразования, добавляя его в глобальный список доступных преобразователей.
[virtual] QWinMime::~QWinMime()
Уничтожает объект преобразования, удаляя его из глобального списка доступных преобразователей.
[pure virtual] bool QWinMime::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const
Возвращает true, если преобразователь может преобразовать из mimeData в формат, указанный в formatetc.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] bool QWinMime::canConvertToMime(const QString &mimeType, int *pDataObj) const
Возвращает true, если преобразователь может преобразовать в mimeType из доступных форматов в pDataObj.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] bool QWinMime::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const
Преобразует mimeData в формат, указанный в formatetc. Преобразованные данные должны быть помещены в структуру pmedium.
Возвращает true, если преобразование успешно.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QVariant QWinMime::convertToMime(const QString &mimeType, int *pDataObj, QVariant::Type preferredType) const
Возвращает QVariant, содержащую преобразованные данные для mimeType из pDataObj. Если это возможно, QVariant должна быть типа preferredType, чтобы избежать ненужных преобразований.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QVector<FORMATETC> QWinMime::formatsForMime(const QString &mimeType, const QMimeData *mimeData) const
Возвращает QVector структур FORMATETC, представляющих различные форматы буфера обмена Windows, которые могут быть предоставлены для mimeType из mimeData.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QString QWinMime::mimeForFormat(const FORMATETC &formatetc) const
Возвращает MIME тип, который будет создан из формата, указанного в formatetc, или пустую строку, если этот преобразователь не поддерживает formatetc.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[static] int QWinMime::registerMimeType(const QString &mime)
Регистрирует MIME тип mime и возвращает идентификационный номер, определяющий формат в Windows.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qwinmime.html