QWindowsMimeConverter Class
Die Klasse „QWindowsMimeConverter“ ordnet offene MIME-Standards den Formaten der Windows-Zwischenablage zu. Mehr...
| Header: | #include <QWindowsMimeConverter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
Öffentliche Funktionen
| 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 |
Statische öffentliche Mitglieder
| int | registerMimeType(const QString &mimeType) |
Ausführliche Beschreibung
Die Drag-and-Drop- und Zwischenablagefunktionen von Qt verwenden den MIME-Standard. Unter X11 entspricht dies einfach dem Xdnd-Protokoll, doch unter Windows verwenden zwar einige Anwendungen MIME-Typen zur Beschreibung von Zwischenablageformaten, andere nutzen jedoch beliebige, nicht standardisierte Namenskonventionen oder unbenannte, in Windows integrierte Formate.
Durch die Instanziierung von Unterklassen von `QWindowsMimeConverter`, die Konvertierungen zwischen der Windows-Zwischenablage und MIME-Formaten ermöglichen, können Sie proprietäre Zwischenablageformate in MIME-Formate konvertieren.
Erstellen Sie eine Instanz Ihrer Konverter-Implementierung, nachdem Sie ` QGuiApplication` instanziiert haben:
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
JsonMimeConverter jsonConverter;
}Durch das Löschen der Instanz wird der Konverter deregistriert und die Unterstützung für die Konvertierung entfernt. Es ist auch zulässig, die Konverterinstanz im Heap zuzuweisen; Qt übernimmt die Verantwortung dafür und löscht das Konverterobjekt beim Beenden von ` QGuiApplication `.
Qt bietet vordefinierte Unterstützung für die folgenden Windows-Zwischenablageformate:
| Windows-Format | Entsprechender MIME-Typ |
|---|---|
CF_UNICODETEXT | text/plain |
CF_TEXT | text/plain |
CF_DIB | image/xyz, wobei „ xyz “ ein Qt image format |
CF_HDROP | text/uri-list |
CF_INETURL | text/uri-list |
CF_HTML | text/html |
Ein Anwendungsbeispiel für diese Klasse wäre die Zuordnung des Windows-Metafile-Zwischenablageformats (CF_METAFILEPICT) zum und vom MIME-Typ image/x-wmf. Diese Konvertierung kann einfach darin bestehen, einen Header hinzuzufügen oder zu entfernen, oder sogar nur darin, die Daten weiterzugeben. Weitere Informationen zur Auswahl und Definition von MIME-Typen finden Sie unter „Drag and Drop “.
Mit canConvertFromMime() können Sie prüfen, ob ein MIME-Typ konvertierbar ist, und mit convertToMime() sowie convertFromMime() können Sie Konvertierungen durchführen.
Dokumentation zu den Member-Funktionen
QWindowsMimeConverter::QWindowsMimeConverter()
Erstellt eine Instanz von `QWindowsMimeConverter`.
Die Instanz wird automatisch registriert und bei Operationen mit der Zwischenablage oder per Drag-and-Drop zur Konvertierung von Daten aufgerufen.
Rufen Sie diesen Konstruktor auf, nachdem „ QGuiApplication “ erstellt wurde.
[virtual noexcept] QWindowsMimeConverter::~QWindowsMimeConverter()
Erstellt eine Instanz von ` QWindowsMimeConverter `.
Die Instanz wird automatisch abgemeldet.
[pure virtual] bool QWindowsMimeConverter::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const
Gibt „ true “ zurück, wenn der Konverter Daten aus dem Format „ mimeData “ in das unter „ formatetc “ angegebene Format konvertieren kann.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] bool QWindowsMimeConverter::canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const
Gibt „ true “ zurück, wenn der Konverter aus den unter pDataObj verfügbaren Formaten in das Format „ mimeType “ konvertieren kann.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] bool QWindowsMimeConverter::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const
Konvertiere die „ mimeData “ in das unter formatetc angegebene Format. Die konvertierten Daten sollten anschließend in die Struktur „ pmedium “ gespeichert werden.
Gibt „true“ zurück, wenn die Konvertierung erfolgreich war.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] QVariant QWindowsMimeConverter::convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const
Gibt ein ` QVariant ` zurück, das die konvertierten Daten für ` mimeType ` aus ` pDataObj` enthält. Wenn möglich, sollte ` QVariant ` vom Typ ` preferredType ` sein, um unnötige Konvertierungen zu vermeiden.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] QList<FORMATETC> QWindowsMimeConverter::formatsForMime(const QString &mimeType, const QMimeData *mimeData) const
Gibt ein „ QList “ mit „FORMATETC“-Strukturen zurück, die die verschiedenen Formate der Windows-Zwischenablage darstellen, die für die Funktion „ mimeType “ aus „ mimeData “ bereitgestellt werden können.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] QString QWindowsMimeConverter::mimeForFormat(const FORMATETC &formatetc) const
Gibt den MIME-Typ zurück, der aus dem unter formatetc angegebenen Format erstellt wird, oder eine leere Zeichenkette, falls dieser Konverter formatetc nicht unterstützt.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[static] int QWindowsMimeConverter::registerMimeType(const QString &mimeType)
Registriert den MIME-Typ „ mimeType “ und gibt unter Windows eine ID-Nummer zurück, die das Format identifiziert.
Ein MIME-Typ „ application/x-qt-windows-mime;value="WindowsType" “ wird als Zwischenablageformat für „ WindowsType “ registriert.
© 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.