QWindowsMimeConverter Class
QWindowsMimeConverter クラスは、オープンスタンダードの MIME を Windows のクリップボード形式に変換します。詳細...
| ヘッダー: | #include <QWindowsMimeConverter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
パブリック関数
| QWindowsMimeConverter() | |
| virtual | ~QWindowsMimeConverter() |
| virtual bool | canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const = 0 |
| virtual bool | canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const = 0 |
| virtual bool | convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const = 0 |
| virtual QVariant | convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const = 0 |
| virtual QList<FORMATETC> | formatsForMime(const QString &mimeType, const QMimeData *mimeData) const = 0 |
| virtual QString | mimeForFormat(const FORMATETC &formatetc) const = 0 |
静的パブリックメンバー
| int | registerMimeType(const QString &mimeType) |
詳細な説明
Qtのドラッグ&ドロップおよびクリップボード機能は、MIME標準を使用しています。X11では、これはXdndプロトコルに単純に対応しますが、Windowsでは、一部のアプリケーションがクリップボードのフォーマットを記述するためにMIMEタイプを使用している一方で、他のアプリケーションは、標準化されていない任意の命名規則や、Windowsの無名の組み込みフォーマットを使用しています。
Windows クリップボードと MIME フォーマット間の変換を行う QWindowsMimeConverter のサブクラスをインスタンス化することで、独自のクリップボードフォーマットを MIME フォーマットに変換することができます。
QGuiApplication のインスタンスを作成した後、コンバータ実装のインスタンスを生成します:
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
JsonMimeConverter jsonConverter;
}インスタンスを破棄すると、コンバータの登録が解除され、変換のサポートが削除されます。コンバータインスタンスをヒープ上に割り当てることも可能です。Qtが所有権を取得し、QGuiApplication のシャットダウン時にコンバータオブジェクトを削除します。
Qt では、以下の Windows クリップボード形式に対するサポートが事前に定義されています:
| Windows 形式 | 対応する MIME タイプ |
|---|---|
CF_UNICODETEXT | text/plain |
CF_TEXT | text/plain |
CF_DIB | image/xyz、ここで `xyz ` はQt image format |
CF_HDROP | text/uri-list |
CF_INETURL | text/uri-list |
CF_HTML | text/html |
このクラスの使用例として、Windows メタファイルのクリップボード形式(CF_METAFILEPICT )と MIME タイプimage/x-wmf との間の双方向変換が挙げられます。この変換は、単にヘッダーの追加や削除、あるいは単にデータを渡すだけの場合もあります。MIME タイプの選択および定義に関する詳細については、「ドラッグ&ドロップ」を参照してください。
canConvertFromMime() を使用してMIMEタイプが変換可能かどうかを確認でき、convertToMime() およびconvertFromMime() を使用して変換を実行できます。
メンバ関数のドキュメント
QWindowsMimeConverter::QWindowsMimeConverter()
QWindowsMimeConverter のインスタンスを作成します。
このインスタンスは自動的に登録され、クリップボードやドラッグ&ドロップ操作の際にデータを変換するために呼び出されます。
このコンストラクタは、QGuiApplication が作成された後に呼び出してください。
[virtual noexcept] QWindowsMimeConverter::~QWindowsMimeConverter()
QWindowsMimeConverter のインスタンスを作成します。
このインスタンスは自動的に登録解除されます。
[pure virtual] bool QWindowsMimeConverter::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const
コンバータが、mimeData からformatetc で指定された形式へ変換できる場合、true を返します。
すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。
[pure virtual] bool QWindowsMimeConverter::canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const
コンバータが、pDataObj に指定された利用可能なフォーマットからmimeType へ変換できる場合、true を返します。
すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。
[pure virtual] bool QWindowsMimeConverter::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const
mimeData を、formatetc で指定された形式に変換します。変換されたデータは、pmedium 構造体に格納する必要があります。
変換が成功した場合は true を返します。
すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。
[pure virtual] QVariant QWindowsMimeConverter::convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const
pDataObj から取得したmimeType の変換済みデータを含む `QVariant ` を返します。可能であれば、不必要な変換を避けるために、QVariant は `preferredType ` のインスタンスであるべきです。
すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。
[pure virtual] QList<FORMATETC> QWindowsMimeConverter::formatsForMime(const QString &mimeType, const QMimeData *mimeData) const
mimeData から、mimeType に対して指定可能なさまざまなウィンドウのクリップボード形式を表す FORMATETC 構造体のQList を返します。
すべてのサブクラスは、この純粋仮想関数を再実装する必要があります。
[pure virtual] QString QWindowsMimeConverter::mimeForFormat(const FORMATETC &formatetc) const
formatetc で指定されたフォーマットから生成される MIME タイプを返します。ただし、このコンバータがformatetc をサポートしていない場合は、空の文字列を返します。
すべてのサブクラスは、この純粋仮想関数を再実装しなければなりません。
[static] int QWindowsMimeConverter::registerMimeType(const QString &mimeType)
Windows 上で、MIME タイプ `mimeType` を登録し、その形式を識別する ID 番号を返します。
MIMEタイプapplication/x-qt-windows-mime;value="WindowsType" は、WindowsType のクリップボード形式として登録されます。
© 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.