Sur cette page

QWindowsMimeConverter Class

La classe QWindowsMimeConverter fait correspondre les formats MIME ouverts aux formats du presse-papiers Windows. Plus d'informations...

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 fonctions de glisser-déposer et de presse-papiers de Qt utilisent le standard MIME. Sur X11, cela correspond trivialement au protocole Xdnd, mais sur Windows, bien que certaines applications utilisent des types MIME pour décrire les formats de presse-papiers, d'autres utilisent des conventions de nommage arbitraires et non standardisées, ou des formats intégrés non nommés de Windows.

En instanciant des sous-classes de QWindowsMimeConverter qui fournissent des conversions entre le presse-papiers Windows et les formats MIME, vous pouvez convertir des formats de presse-papiers propriétaires en formats MIME.

Construisez une instance de votre 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 au tas ; Qt en prend la propriété et supprimera l'objet convertisseur lors de l'arrêt de QGuiApplication.

Qt a un support prédéfini pour les formats de presse-papiers Windows suivants :

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

Un exemple d'utilisation de cette classe serait de convertir le format de presse-papiers Windows Metafile (CF_METAFILEPICT) vers et depuis le type MIME image/x-wmf. Cette conversion peut simplement consister à ajouter ou à supprimer un en-tête, ou même à transmettre les données. Pour plus d'informations sur le choix et la définition des types MIME, voir la rubrique "Glisser-déposer".

Vous pouvez vérifier si un type MIME est convertible en utilisant canConvertFromMime() et vous pouvez effectuer des conversions avec convertToMime() et convertFromMime().

Documentation sur les fonctions membres

QWindowsMimeConverter::QWindowsMimeConverter()

Construit une instance de QWindowsMimeConverter.

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

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

[virtual noexcept] QWindowsMimeConverter::~QWindowsMimeConverter()

Construit une instance 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 peut convertir le format mimeData au 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 peut 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

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

Retourne 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 QVariant contenant les données converties pour mimeType à partir de pDataObj. Si possible, le QVariant devrait être du preferredType pour éviter les 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 une QList de structures FORMATETC représentant les différents formats de presse-papiers pour fenêtres qui peuvent être fournis à mimeType à partir de 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 de 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 du format sous Windows.

Un type MIME application/x-qt-windows-mime;value="WindowsType" sera enregistré comme format de 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.