QWindowsMimeConverter Class

QWindowsMimeConverter クラスは、オープンスタンダードの MIME を Window クリップボードのフォーマットにマップします。詳細...

Header: #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_UNICODETEXTtext/plain
CF_TEXTtext/plain
CF_DIBimage/xyzここで、xyzQt image format
CF_HDROPtext/uri-list
CF_INETURLtext/uri-list
CF_HTMLtext/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

mimeDataformatetc で指定されたフォーマットに変換します。変換されたデータはpmedium 構造体に格納される。

変換に成功した場合は true を返します。

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

[pure virtual] QVariant QWindowsMimeConverter::convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const

pDataObj からmimeType に変換されたデータを含むQVariant を返します。 可能であれば、無駄な変換を避けるためにQVariantpreferredType のものであるべきです。

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

[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)

MIME タイプmimeType を登録し、Windows 上のフォーマットを識別する ID 番号を返す。

MIME タイプapplication/x-qt-windows-mime;value="WindowsType"WindowsType のクリップボードフォーマットとして登録されます。

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