QWindowsMimeConverter Class
QWindowsMimeConverter クラスは、オープンスタンダードの MIME を Window クリップボードのフォーマットにマップします。詳細...
ヘッダ | #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 Metafile クリップボードフォーマット (CF_METAFILEPICT
) を MIME タイプimage/x-wmf
にマップしたり、MIME タイプ からマップしたりすることがあります。この変換は単にヘッダを追加したり削除したりするだけかもしれませんし、単にデータを渡すだけかもしれません。MIMEタイプの選択と定義の詳細については、ドラッグ&ドロップを参照してください。
MIME タイプが変換可能かどうかはcanConvertFromMime() で確認でき、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
mimeType に提供可能なさまざまなウィンドウズクリップボードフォーマットを表す FORMATETC 構造体のQList をmimeData から返します。
すべてのサブクラスはこの純粋仮想関数を再実装しなければならない。
[pure virtual]
QString QWindowsMimeConverter::mimeForFormat(const FORMATETC &formatetc) const
formatetcこのコンバータがformatetc をサポートしていない場合は空文字列を返します。
すべてのサブクラスはこの純粋仮想関数を再実装しなければなりません。
[static]
int QWindowsMimeConverter::registerMimeType(const QString &mimeType)
MIME タイプmimeType を登録し、Windows 上でそのフォーマットを識別する ID 番号を返す。
MIME タイプapplication/x-qt-windows-mime;value="WindowsType"
はWindowsType
のクリップボードフォーマットとして登録されます。
© 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.