QUtiMimeConverter Class

Die Klasse QUtiMimeConverter konvertiert zwischen einem MIME-Typ und einem Uniform Type Identifier (UTI) Format. Mehr...

Kopfzeile: #include <QUtiMimeConverter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Seit: Qt 6.5

Öffentliche Typen

flags HandlerScope

Ö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

Detaillierte Beschreibung

Qt's Drag & Drop und die Zwischenablage verwenden den MIME Standard. Unter X11 entspricht dies trivialerweise dem Xdnd-Protokoll. Auf dem Mac verwenden zwar einige Programme MIME, um den Inhalt der Zwischenablage zu beschreiben, aber es ist üblicher, das UTI-Format von Apple zu verwenden.

Die Aufgabe von QUtiMimeConverter ist es, die Lücke zwischen MIME und UTI zu überbrücken. Durch Unterklassen dieser Klasse kann man Qts Drag-and-Drop- und Zwischenablage-Behandlung erweitern, um in und aus nicht unterstützten oder proprietären UTI-Formaten zu konvertieren.

Konstruieren Sie eine Instanz Ihrer Konverter-Implementierung, nachdem Sie QGuiApplication instanziiert haben:

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

Das Zerstören der Instanz hebt die Registrierung des Konverters auf und entfernt die Unterstützung für die Konvertierung. Es ist auch zulässig, die Konverterinstanz im Heap zu allozieren; Qt übernimmt den Besitz und löscht das Konverterobjekt beim Herunterfahren von QGuiApplication.

Qt hat vordefinierte Unterstützung für die folgenden UTIs:

  • public.utf8-plain-text - konvertiert in "text/plain"
  • public.utf16-plain-text - konvertiert nach "text/plain".
  • public.text - konvertiert in "text/plain".
  • public.html - wird in "text/html" umgewandelt
  • public.url - wird umgewandelt in "text/uri-list".
  • public.file-url - wird in "text/uri-list" umgewandelt
  • public.tiff - wird umgewandelt in "application/x-qt-image".
  • public.vcard - wird umgewandelt in "text/plain".
  • com.apple.traditional-mac-plain-text - konvertiert zu "text/plain".
  • com.apple.pict - wird in "application/x-qt-image" umgewandelt

Bei der Arbeit mit MIME-Daten durchläuft Qt alle Instanzen von QUtiMimeConverter, um eine Instanz zu finden, die in oder von einem bestimmten MIME-Typ konvertieren kann. Dies geschieht durch den Aufruf von mimeForUti() oder utiForMime() für jede Instanz, wobei mit der zuletzt erstellten Instanz begonnen wird (und diese zuerst ausgewählt wird). Die eigentlichen Konvertierungen werden mit convertToMime() und convertFromMime() durchgeführt.

Dokumentation der Mitgliedsfunktionen

QUtiMimeConverter::QUtiMimeConverter()

Konstruiert 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 worden ist.

[virtual noexcept] QUtiMimeConverter::~QUtiMimeConverter()

Zerstört 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 gibt er false zurück.

[pure virtual] QList<QByteArray> QUtiMimeConverter::convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const

Gibt data zurück, konvertiert vom MIME-Typ mime in Mac UTI uti.

Beachten Sie, dass Mac UTIs alle selbstterminierend sein müssen. Der Rückgabewert kann Daten am Ende enthalten.

Alle Unterklassen müssen diese rein virtuelle Funktion reimplementieren.

[pure virtual] QVariant QUtiMimeConverter::convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const

Gibt data zurück, konvertiert von Mac UTI uti in MIME-Typ mime.

Beachten Sie, dass Mac UTIs alle selbstterminierend sein müssen. Die Eingabe data kann Daten am Ende enthalten.

Alle Unterklassen müssen diese rein virtuelle Funktion reimplementieren.

[virtual] int QUtiMimeConverter::count(const QMimeData *mimeData) const

Gibt die Anzahl der Elemente für die angegebene mimeData

[pure virtual] QString QUtiMimeConverter::mimeForUti(const QString &uti) const

Gibt den MIME-Typ zurück, der für Mac UTI uti verwendet wird, oder einen leeren String, wenn dieser Konverter die Konvertierung von uti nicht unterstützt.

Alle Unterklassen müssen diese rein virtuelle Funktion reimplementieren.

[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 einen leeren String, wenn dieser Konverter die Konvertierung von mime nicht unterstützt.

Alle Unterklassen müssen diese rein virtuelle Funktion reimplementieren.

© 2025 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.