QUtiMimeConverter Class

QUtiMimeConverter クラスは、MIME タイプとUTI (Uniform Type Identifier)フォーマットを変換します。詳細...

ヘッダ #include <QUtiMimeConverter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
以来:Qt 6.5

パブリックな型

flags HandlerScope

パブリック関数

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

詳しい説明

Qt のドラッグ&ドロップとクリップボード機能は MIME 標準を使用しています。X11では、これはXdndプロトコルに些細に対応します。Macでは、クリップボードの内容を記述するためにMIMEを使用するアプリケーションもありますが、AppleのUTIフォーマットを使用する方が一般的です。

QUtiMimeConverterの役割は、MIMEとUTIの橋渡しをすることです。このクラスをサブクラス化することで、Qtのドラッグ&ドロップやクリップボード処理を拡張し、サポートされていない、あるいは独自のUTIフォーマットとの間で変換することができます。

QGuiApplication をインスタンス化した後、コンバータ実装のインスタンスを構築してください:

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

インスタンスを破棄すると、コンバータの登録が解除され、変換のサポートが削除されます。Qt が所有権を持ち、QGuiApplication シャットダウン時にコンバーターオブジェクトを削除します。

Qtは、以下のUTIを定義済みでサポートしています:

  • public.utf8-plain-text - "text/plain "に変換します。
  • public.utf16-plain-text - "text/plain" に変換します。
  • public.text - "text/plain" に変換されます。
  • public.html - "text/html" に変換されます。
  • public.url - "text/uri-list" に変換されます。
  • public.file-url - "text/uri-list" に変換されます。
  • public.tiff - "application/x-qt-image" に変換されます。
  • public.vcard - "text/plain" に変換されます。
  • com.apple.traditional-mac-plain-text - "text/plain" に変換します。
  • com.apple.pict - "application/x-qt-image" に変換されます。

MIME データを扱うとき、Qt は QUtiMimeConverter のすべてのインスタンスを繰り返し、特定の MIME タイプに変換したり、特定の MIME タイプから変換したりできるインスタンスを探します。これは、各インスタンスでmimeForUti() またはutiForMime() を呼び出し、最後に作成されたインスタンスから順に (選択して) 行います。実際の変換は、convertToMime() やconvertFromMime() を使って行われる。

メンバ関数ドキュメント

QUtiMimeConverter::QUtiMimeConverter()

新しいコンバージョンオブジェクトを構築し、利用可能なコンバータのグローバルアクセスリストに追加します。

QGuiApplication が作成された後にこのコンストラクタを呼び出します。

[virtual noexcept] QUtiMimeConverter::~QUtiMimeConverter()

コンバージョンオブジェクトを破棄し、利用可能なコンバータのグローバルリストから削除する。

bool QUtiMimeConverter::canConvert(const QString &mime, const QString &uti) const

コンバータがmimeuti の間を(双方向に)変換できる場合はtrue を返し、そうでない場合はfalse を返す。

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

MIME タイプmime から Mac UTIuti に変換されたdata を返す。

Mac UTIはすべて自己終端でなければならないことに注意。戻り値は末尾のデータを含むことができる。

すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。

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

Mac UTIuti から MIME タイプmime に変換されたdata を返す。

Mac UTIはすべて自己終端でなければならないことに注意。入力data は末尾のデータを含むことができる。

すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。

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

与えられたmimeData

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

Mac UTIuti で使用される MIME タイプ、またはこのコンバータがuti からの変換をサポートしていない場合は空文字列を返します。

すべてのサブクラスはこの純粋仮想関数を再実装しなければなりません。

[pure virtual] QString QUtiMimeConverter::utiForMime(const QString &mime) const

MIME タイプmime に使用される Mac UTI、またはこのコンバータがmime からの変換をサポートしていない場合は空文字列を返します。

すべてのサブクラスはこの純粋仮想関数を再実装しなければならない。

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