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_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
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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。