Sur cette page

QWindowsMimeConverter Class

La classe QWindowsMimeConverter assure la conversion entre les formats MIME ouverts et les formats du presse-papiers de Windows. En savoir plus...

En-tête : #include <QWindowsMimeConverter>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui

Fonctions publiques

QWindowsMimeConverter()
virtual ~QWindowsMimeConverter()
virtual bool canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const = 0
virtual bool canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const = 0
virtual bool convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const = 0
virtual QVariant convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const = 0
virtual QList<FORMATETC> formatsForMime(const QString &mimeType, const QMimeData *mimeData) const = 0
virtual QString mimeForFormat(const FORMATETC &formatetc) const = 0

Membres publics statiques

int registerMimeType(const QString &mimeType)

Description détaillée

Les fonctionnalités de glisser-déposer et de presse-papiers de Qt utilisent la norme MIME. Sous X11, cela correspond simplement au protocole Xdnd, mais sous Windows, bien que certaines applications utilisent des types MIME pour décrire les formats du presse-papiers, d’autres utilisent des conventions de nommage arbitraires non normalisées, ou des formats intégrés non nommés de Windows.

En instanciant des sous-classes de `QWindowsMimeConverter` qui assurent la conversion entre le presse-papiers Windows et les formats MIME, vous pouvez convertir les formats propriétaires du presse-papiers en formats MIME.

Créez une instance de votre implémentation de convertisseur après avoir instancié QGuiApplication:

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

La destruction de l’instance désenregistrera le convertisseur et supprimera la prise en charge de la conversion. Il est également possible d’allouer l’instance du convertisseur dans le tas ; Qt en prendra la propriété et supprimera l’objet convertisseur lors de l’arrêt QGuiApplication.

Qt prend en charge par défaut les formats de presse-papiers Windows suivants :

Format WindowsType MIME équivalent
CF_UNICODETEXTtext/plain
CF_TEXTtext/plain
CF_DIBimage/xyz, où xyz est un Qt image format
CF_HDROPtext/uri-list
CF_INETURLtext/uri-list
CF_HTMLtext/html

Un exemple d’utilisation de cette classe consisterait à mapper le format de presse-papiers « Windows Metafile » (CF_METAFILEPICT) vers et depuis le type MIME image/x-wmf. Cette conversion peut se limiter à l’ajout ou à la suppression d’un en-tête, voire simplement au transfert des données. Voir Glisser-déposer pour plus d’informations sur le choix et la définition des types MIME.

Vous pouvez vérifier si un type MIME est convertible à l’aide de canConvertFromMime() et effectuer des conversions avec convertToMime() et convertFromMime().

Documentation des fonctions membres

QWindowsMimeConverter::QWindowsMimeConverter()

Crée une instance de QWindowsMimeConverter.

L'instance est automatiquement enregistrée et sera appelée pour convertir les données lors d'opérations sur le presse-papiers ou de glisser-déposer.

Appelez ce constructeur après la création de ` QGuiApplication `.

[virtual noexcept] QWindowsMimeConverter::~QWindowsMimeConverter()

Crée une instance de ` QWindowsMimeConverter `.

L'instance est automatiquement désenregistrée.

[pure virtual] bool QWindowsMimeConverter::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const

Renvoie ` true ` si le convertisseur est capable de convertir le format ` mimeData ` vers le format spécifié dans ` formatetc`.

Toutes les sous-classes doivent réimplémenter cette fonction virtuelle pure.

[pure virtual] bool QWindowsMimeConverter::canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const

Renvoie « true » si le convertisseur est capable de convertir vers le format « mimeType » à partir des formats disponibles dans « pDataObj ».

Toutes les sous-classes doivent réimplémenter cette fonction virtuelle pure.

[pure virtual] bool QWindowsMimeConverter::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const

Convertit la structure ` mimeData ` au format spécifié dans ` formatetc`. Les données converties doivent ensuite être placées dans la structure ` pmedium `.

Renvoie `true` si la conversion a réussi.

Toutes les sous-classes doivent réimplémenter cette fonction virtuelle pure.

[pure virtual] QVariant QWindowsMimeConverter::convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const

Renvoie un objet de type ` QVariant ` contenant les données converties issues de mimeType à partir de pDataObj. Dans la mesure du possible, le type ` QVariant ` doit être de type ` preferredType ` afin d'éviter des conversions inutiles.

Toutes les sous-classes doivent réimplémenter cette fonction virtuelle pure.

[pure virtual] QList<FORMATETC> QWindowsMimeConverter::formatsForMime(const QString &mimeType, const QMimeData *mimeData) const

Renvoie un tableau de structures ` QList ` de type `FORMATETC` représentant les différents formats du presse-papiers Windows pouvant être fournis à la fonction ` mimeType ` à partir de la fonction ` mimeData`.

Toutes les sous-classes doivent réimplémenter cette fonction virtuelle pure.

[pure virtual] QString QWindowsMimeConverter::mimeForFormat(const FORMATETC &formatetc) const

Renvoie le type MIME qui sera créé à partir du format spécifié dans ` formatetc`, ou une chaîne vide si ce convertisseur ne prend pas en charge ` formatetc`.

Toutes les sous-classes doivent réimplémenter cette fonction virtuelle pure.

[static] int QWindowsMimeConverter::registerMimeType(const QString &mimeType)

Enregistre le type MIME « mimeType » et renvoie un numéro d'identification correspondant à ce format sous Windows.

Un type MIME application/x-qt-windows-mime;value="WindowsType" sera enregistré comme format du presse-papiers pour WindowsType.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.