QUtiMimeConverter Class
Die Klasse „QUtiMimeConverter“ wandelt zwischen einem MIME-Typ und einem UTI -Format (Uniform Type Identifier) um. Mehr...
| Header: | #include <QUtiMimeConverter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Seit: | Qt 6.5 |
Öffentliche Funktionen
| QUtiMimeConverter() | |
| virtual | ~QUtiMimeConverter() |
| bool | canConvert(const QString &mime, const QString &uti) const |
| virtual QList<QByteArray> | convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const = 0 |
| virtual QVariant | convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const = 0 |
| virtual int | count(const QMimeData *mimeData) const |
| virtual QString | mimeForUti(const QString &uti) const = 0 |
| virtual QString | utiForMime(const QString &mime) const = 0 |
Ausführliche Beschreibung
Die Drag-and-Drop- und Zwischenablagefunktionen von Qt basieren auf dem MIME-Standard. Unter X11 entspricht dies einfach dem Xdnd-Protokoll. Auf dem Mac verwenden zwar einige Anwendungen MIME zur Beschreibung des Zwischenablageinhalts, häufiger wird jedoch das UTI-Format von Apple verwendet.
Die Aufgabe von `QUtiMimeConverter` besteht darin, die Lücke zwischen MIME und UTI zu überbrücken. Durch Unterklassen dieser Klasse kann man die Drag-and-Drop- und Zwischenablagefunktionen von Qt erweitern, um nicht unterstützte oder proprietäre UTI-Formate zu 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 UTIs:
- public.utf8-plain-text – konvertiert in „text/plain“
- public.utf16-plain-text – konvertiert in „text/plain“
- public.text – konvertiert in „text/plain“
- public.html – konvertiert in „text/html“
- public.url – wird in „text/uri-list“ konvertiert
- public.file-url – konvertiert in „text/uri-list“
- public.tiff – wird in „application/x-qt-image“ konvertiert
- public.vcard – wird in „text/plain“ konvertiert
- com.apple.traditional-mac-plain-text – wird in „text/plain“ konvertiert
- com.apple.pict – wird in „application/x-qt-image“ konvertiert
Bei der Arbeit mit MIME-Daten durchläuft Qt alle Instanzen von QUtiMimeConverter, um eine Instanz zu finden, die in einen bestimmten MIME-Typ konvertieren oder aus diesem konvertieren kann. Dazu ruft es für jede Instanz die Methoden „ mimeForUti()“ oder „ utiForMime()“ auf, wobei es mit der zuletzt erstellten Instanz beginnt (und diese auswählt). Die eigentlichen Konvertierungen erfolgen mithilfe von ` convertToMime()` und ` convertFromMime()`.
Dokumentation der Member-Funktionen
QUtiMimeConverter::QUtiMimeConverter()
Erstellt ein neues Konvertierungsobjekt und fügt es der global zugänglichen Liste der verfügbaren Konverter hinzu.
Rufen Sie diesen Konstruktor auf, nachdem ` QGuiApplication ` erstellt wurde.
[virtual noexcept] QUtiMimeConverter::~QUtiMimeConverter()
Löscht ein Konvertierungsobjekt und entfernt es aus der globalen Liste der verfügbaren Konverter.
bool QUtiMimeConverter::canConvert(const QString &mime, const QString &uti) const
Gibt „ true “ zurück, wenn der Konverter (in beide Richtungen) zwischen „ mime “ und „ uti “ konvertieren kann; andernfalls wird „ false “ zurückgegeben.
[pure virtual] QList<QByteArray> QUtiMimeConverter::convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const
Gibt „ data “ zurück, das vom MIME-Typ „ mime “ in den Mac-UTI-Typ „ uti “ konvertiert wurde.
Beachten Sie, dass alle Mac-UTIs selbstabschließend sein müssen. Der Rückgabewert kann nachgestellte Daten enthalten.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] QVariant QUtiMimeConverter::convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const
Gibt die data zurück, die von der Mac-UTI- uti in den MIME-Typ mime konvertiert wurden.
Beachten Sie, dass alle Mac-UTIs selbstabschließend sein müssen. Die Eingabe „ data “ kann an das Ende angehängte Daten enthalten.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[virtual] int QUtiMimeConverter::count(const QMimeData *mimeData) const
Gibt die Anzahl der Elemente für das angegebene mimeData
[pure virtual] QString QUtiMimeConverter::mimeForUti(const QString &uti) const
Gibt den MIME-Typ zurück, der für die Mac-UTI- uti verwendet wird, oder eine leere Zeichenkette, wenn dieser Konverter die Konvertierung von uti nicht unterstützt.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
[pure virtual] QString QUtiMimeConverter::utiForMime(const QString &mime) const
Gibt die Mac-UTI zurück, die für den MIME-Typ „ mime “ verwendet wird, oder eine leere Zeichenkette, falls dieser Konverter die Konvertierung von „ mime “ nicht unterstützt.
Alle Unterklassen müssen diese rein virtuelle Funktion neu implementieren.
© 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.