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 Windows | Type MIME équivalent |
|---|---|
CF_UNICODETEXT | text/plain |
CF_TEXT | text/plain |
CF_DIB | image/xyz, où xyz est un Qt image format |
CF_HDROP | text/uri-list |
CF_INETURL | text/uri-list |
CF_HTML | text/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.