QWindowsMimeConverter Class

QWindowsMimeConverter 클래스는 개방형 표준 MIME을 창 클립보드 포맷에 매핑합니다. 더 보기...

헤더: #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 프로토콜에 간단하게 매핑되지만, 윈도우에서는 일부 응용 프로그램이 클립보드 형식을 설명하기 위해 MIME 형식을 사용하지만, 다른 응용 프로그램은 표준화되지 않은 임의의 명명 규칙이나 윈도우의 이름 없는 내장 형식을 사용합니다.

Windows 클립보드와 MIME 형식 간의 변환을 제공하는 QWindowsMimeConverter의 서브클래스를 인스턴스화하면, 전용 클립보드 형식을 MIME 형식으로 변환할 수 있습니다.

QGuiApplication 을 인스턴스화한 후 변환기 구현의 인스턴스를 생성합니다:

int main(int argc, char **argv)
{
    QGuiApplication app(argc, argv);
    JsonMimeConverter jsonConverter;
}

인스턴스를 삭제하면 변환기 등록이 취소되고 변환에 대한 지원이 제거됩니다. 변환기 인스턴스를 힙 할당하는 것도 유효합니다; Qt는 소유권을 가지며 QGuiApplication 종료 중에 변환기 객체를 삭제합니다.

Qt는 다음과 같은 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

이 클래스의 사용 예는 윈도우 메타파일 클립보드 포맷(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

mimeDataformatetc 에 지정된 형식으로 변환합니다. 그런 다음 변환된 데이터를 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 에 지정된 형식으로 생성될 밈 유형을 반환하거나, 이 변환기가 formatetc 을 지원하지 않는 경우 빈 문자열을 반환합니다.

모든 서브클래스는 이 순수 가상 함수를 재구현해야 합니다.

[static] int QWindowsMimeConverter::registerMimeType(const QString &mimeType)

MIME 형식 mimeType 을 등록하고 Windows에서 해당 형식을 식별하는 ID 번호를 반환합니다.

WindowsType 에 대한 클립보드 형식으로 application/x-qt-windows-mime;value="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.