QUtiMimeConverter Class
QUtiMimeConverter クラスは、MIME タイプとUniform Type Identifier (UTI)形式の間で変換を行います。詳細...
| ヘッダー: | #include <QUtiMimeConverter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 以下のように: | Qt 6.5 |
パブリック関数
| 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 タイプへの変換、またはその逆変換が可能なインスタンスを探します。この処理は、最後に作成されたインスタンスから順に(それを選択して)各インスタンスに対してmimeForUti() またはutiForMime() を呼び出すことで行われます。 実際の変換は、convertToMime() およびconvertFromMime() を使用して行われます。
メンバ関数のドキュメント
QUtiMimeConverter::QUtiMimeConverter()
新しい変換オブジェクトを作成し、利用可能なコンバータのグローバルリストに追加します。
QGuiApplication が作成された後に、このコンストラクタを呼び出してください。
[virtual noexcept] QUtiMimeConverter::~QUtiMimeConverter()
変換オブジェクトを破棄し、利用可能なコンバータのグローバルリストから削除します。
bool QUtiMimeConverter::canConvert(const QString &mime, const QString &uti) const
コンバータが `mime ` と `uti` の間で(双方向の)変換が可能であれば、true を返します。そうでない場合は、false を返します。
[pure virtual] QList<QByteArray> QUtiMimeConverter::convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const
MIMEタイプ `mime ` から Mac UTI `uti` に変換された `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 UTI「uti 」に使用されるMIMEタイプを返します。ただし、このコンバータが「uti 」からの変換をサポートしていない場合は、空の文字列を返します。
すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。
[pure virtual] QString QUtiMimeConverter::utiForMime(const QString &mime) const
MIMEタイプ「mime 」に使用されるMac UTIを返します。このコンバータが「mime 」からの変換をサポートしていない場合は、空の文字列を返します。
すべてのサブクラスは、この純粋仮想関数を再実装する必要があります。
© 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.