QUtiMimeConverter Class

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

Header: #include <QUtiMimeConverter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Since: 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 からの変換をサポートしていない場合は空文字列を返します。

すべてのサブクラスはこの純粋仮想関数を再実装する必要があります。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。