QClipboard Class
QClipboard 클래스는 윈도우 시스템 클립보드에 대한 액세스를 제공합니다. 더 보기...
Header: | #include <QClipboard> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
상속합니다: | QObject |
공용 타입
enum | Mode { Clipboard, Selection, FindBuffer } |
공용 함수
void | clear(QClipboard::Mode mode = Clipboard) |
QImage | image(QClipboard::Mode mode = Clipboard) const |
const QMimeData * | mimeData(QClipboard::Mode mode = Clipboard) const |
bool | ownsClipboard() const |
bool | ownsFindBuffer() const |
bool | ownsSelection() const |
QPixmap | pixmap(QClipboard::Mode mode = Clipboard) const |
void | setImage(const QImage &image, QClipboard::Mode mode = Clipboard) |
void | setMimeData(QMimeData *src, QClipboard::Mode mode = Clipboard) |
void | setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard) |
void | setText(const QString &text, QClipboard::Mode mode = Clipboard) |
bool | supportsFindBuffer() const |
bool | supportsSelection() const |
QString | text(QClipboard::Mode mode = Clipboard) const |
QString | text(QString &subtype, QClipboard::Mode mode = Clipboard) const |
시그널
void | changed(QClipboard::Mode mode) |
void | dataChanged() |
void | findBufferChanged() |
void | selectionChanged() |
상세 설명
클립보드는 애플리케이션 간에 데이터를 복사하고 붙여넣을 수 있는 간단한 메커니즘을 제공합니다.
QClipboard는 QDrag 와 동일한 데이터 유형을 지원하며 유사한 메커니즘을 사용합니다. 고급 클립보드 사용법은 드래그 앤 드롭을 참고하세요.
애플리케이션에는 QGuiApplication::clipboard()로 액세스할 수 있는 단일 QClipboard 개체가 있습니다.
예시:
QClipboard *clipboard = QGuiApplication::clipboard(); QString originalText = clipboard->text(); // etc. clipboard->setText(newText);
setText()는 유니코드 텍스트 교환을 허용하고 setPixmap() 및 setImage()는 애플리케이션 간에 QPixmaps 및 QImages를 교환할 수 있습니다. setMimeData () 함수는 최고의 유연성을 제공합니다. QMimeData 을 클립보드에 추가할 수 있습니다. text (), image(), pixmap() 등 각각에 해당하는 게터가 있습니다. clear ()를 호출하여 클립보드를 지울 수 있습니다.
다음은 이러한 함수의 일반적인 사용 예입니다:
void DropArea::paste() { const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); if (mimeData->hasImage()) { setPixmap(qvariant_cast<QPixmap>(mimeData->imageData())); } else if (mimeData->hasHtml()) { setText(mimeData->html()); setTextFormat(Qt::RichText); } else if (mimeData->hasText()) { setText(mimeData->text()); setTextFormat(Qt::PlainText); } else { setText(tr("Cannot display data")); } }
X11 사용자를 위한 참고 사항
- X11 창 시스템에는 별도의 선택 및 클립보드 개념이 있습니다. 텍스트를 선택하면 즉시 전역 마우스 선택으로 사용할 수 있습니다. 전역 마우스 선택은 나중에 클립보드로 복사할 수 있습니다. 일반적으로 마우스 가운데 버튼은 전역 마우스 선택 영역을 붙여넣는 데 사용됩니다.
- X11에는 소유권 개념도 있습니다. 창 내에서 선택 내용을 변경하면 X11은 소유자와 이전 소유자에게만 변경 사실을 알립니다. 즉, 선택 내용이나 클립보드 데이터가 변경되었음을 모든 응용 프로그램에 알리지 않습니다.
- 마지막으로, X11 클립보드는 이벤트 기반이므로 이벤트 루프가 실행되고 있지 않으면 클립보드가 제대로 작동하지 않습니다. 마찬가지로 클립보드의 내용은 마우스 버튼 또는 키 누름과 놓음과 같은 사용자 입력 이벤트에 직접 반응하여 저장하거나 검색하는 것이 좋습니다. 타이머 또는 사용자 입력이 아닌 이벤트에 대한 응답으로 클립보드 내용을 저장하거나 검색해서는 안 됩니다.
- X11에서는 애플리케이션 간에 파일을 복사하여 붙여넣는 표준 방법이 없기 때문에 현재 다양한 MIME 유형과 규칙이 사용되고 있습니다. 예를 들어, 노틸러스에서는 잘라내기/복사 동작, 개행 문자, 파일 URL로 시작하는 데이터가 포함된
x-special/gnome-copied-files
MIME 유형이 파일에 제공될 것으로 예상합니다.
macOS 사용자를 위한 참고 사항
macOS는 찾기 작업에서 현재 검색 문자열을 보관하는 별도의 찾기 버퍼를 지원합니다. 이 찾기 클립보드는 FindBuffer 모드를 지정하여 액세스할 수 있습니다.
Windows 및 macOS 사용자를 위한 참고 사항
- Windows 및 macOS는 전역 마우스 선택을 지원하지 않으며, 전역 클립보드만 지원합니다. 즉, 명시적으로 복사하거나 잘라낼 때만 클립보드에 텍스트를 추가합니다.
- Windows와 macOS에는 소유권 개념이 없으며, 클립보드는 완전한 글로벌 리소스이므로 모든 애플리케이션에 변경 사항이 통보됩니다.
Android 사용자를 위한 참고 사항
Android에서는 텍스트/일반, 텍스트/html, 텍스트/uri-list 등의 마임 유형만 지원됩니다.
QGuiApplication 을참조하세요 .
회원 유형 문서
enum QClipboard::Mode
이 열거형 유형은 QClipboard::mimeData(), QClipboard::setMimeData() 및 관련 함수에서 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다.
Constant | 값 | Description |
---|---|---|
QClipboard::Clipboard | 0 | 전역 클립보드에서 데이터를 저장하고 검색해야 함을 나타냅니다. |
QClipboard::Selection | 1 | 는 전역 마우스 선택 영역에서 데이터를 저장하고 검색해야 함을 나타냅니다. Selection 은 전역 마우스 선택이 가능한 시스템(예: X11)에서만 지원됩니다. |
QClipboard::FindBuffer | 2 | 는 데이터를 찾기 버퍼에서 저장하고 검색해야 함을 나타냅니다. 이 모드는 macOS에서 검색 문자열을 보관하는 데 사용됩니다. |
QClipboard::supportsSelection()도 참조하세요 .
멤버 함수 문서
[signal]
void QClipboard::changed(QClipboard::Mode mode)
이 신호는 지정된 클립보드 mode 의 데이터가 변경될 때 발생합니다.
dataChanged(), selectionChanged() 및 findBufferChanged()도 참조하세요 .
void QClipboard::clear(QClipboard::Mode mode = Clipboard)
클립보드 내용을 지웁니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 이 함수는 전역 클립보드 콘텐츠를 지웁니다. mode 이 QClipboard::Selection 인 경우 이 함수는 전역 마우스 선택 내용을 지웁니다. mode 이 QClipboard::FindBuffer 인 경우 이 함수는 검색 문자열 버퍼를 지웁니다.
QClipboard::Mode 및 supportsSelection()도 참조하십시오 .
[signal]
void QClipboard::dataChanged()
이 신호는 클립보드 데이터가 변경될 때 발생합니다.
macOS 및 Qt 버전 4.3 이상에서는 애플리케이션이 활성화된 경우에만 다른 애플리케이션에 의한 클립보드 변경이 감지됩니다.
findBufferChanged(), selectionChanged() 및 changed()도 참조하세요 .
[signal]
void QClipboard::findBufferChanged()
이 신호는 찾기 버퍼가 변경될 때 발생합니다. 이 신호는 macOS에만 적용됩니다.
Qt 버전 4.3 이상에서는 애플리케이션이 활성화된 경우에만 다른 애플리케이션에 의한 클립보드 변경이 감지됩니다.
dataChanged(), selectionChanged() 및 changed()도 참조하세요 .
QImage QClipboard::image(QClipboard::Mode mode = Clipboard) const
클립보드 이미지를 반환하거나 클립보드에 이미지가 없거나 지원되지 않는 이미지 형식의 이미지가 포함된 경우 null 이미지를 반환합니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 이미지가 전역 클립보드에서 검색됩니다. mode 이 QClipboard::Selection 인 경우 이미지가 전역 마우스 선택 영역에서 검색됩니다.
setImage(), pixmap(), mimeData() 및 QImage::isNull()도 참조하세요 .
const QMimeData *QClipboard::mimeData(QClipboard::Mode mode = Clipboard) const
현재 클립보드 데이터의 QMimeData 표현에 대한 포인터를 반환합니다(지정된 mode 이 플랫폼에서 지원되지 않는 경우 nullptr
일 수 있음).
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 데이터가 전역 클립보드에서 검색됩니다. mode 이 QClipboard::Selection 인 경우 전역 마우스 선택에서 데이터가 검색됩니다. mode 이 QClipboard::FindBuffer 인 경우 검색 문자열 버퍼에서 데이터가 검색됩니다.
text(), image() 및 pixmap() 함수는 텍스트, 이미지 및 픽스맵 데이터를 검색하기 위한 간단한 래퍼입니다.
참고: 설정자 함수 중 하나를 호출하거나 외부에서 시스템 클립보드가 변경되는 등 클립보드의 내용이 변경되면 반환된 포인터가 무효화될 수 있습니다.
setMimeData()도 참조하세요 .
bool QClipboard::ownsClipboard() const
이 클립보드 객체가 클립보드 데이터를 소유하고 있으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
bool QClipboard::ownsFindBuffer() const
이 클립보드 개체가 찾기 버퍼 데이터를 소유하고 있으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
bool QClipboard::ownsSelection() const
이 클립보드 개체가 마우스 선택 데이터를 소유하고 있으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
QPixmap QClipboard::pixmap(QClipboard::Mode mode = Clipboard) const
클립보드 픽셀맵을 반환하거나 클립보드에 픽셀맵이 없는 경우 null을 반환합니다. 이 경우 정보가 손실될 수 있습니다. 예를 들어 이미지가 24비트이고 디스플레이가 8비트인 경우 결과는 8비트로 변환되고 이미지에 알파 채널이 있는 경우 결과에는 마스크만 있습니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 전역 클립보드에서 픽셀맵이 검색됩니다. mode 이 QClipboard::Selection 인 경우 전역 마우스 선택에서 픽셀맵이 검색됩니다.
setPixmap(), image(), mimeData() 및 QPixmap::convertFromImage()도 참조하세요 .
[signal]
void QClipboard::selectionChanged()
이 신호는 선택 항목이 변경될 때 방출됩니다. 이는 선택 항목을 지원하는 창 시스템(예: X11)에만 적용됩니다. Windows 및 macOS는 선택 기능을 지원하지 않습니다.
dataChanged(), findBufferChanged() 및 changed()도 참조하세요 .
void QClipboard::setImage(const QImage &image, QClipboard::Mode mode = Clipboard)
image 을 클립보드에 복사합니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 이미지가 전역 클립보드에 저장됩니다. mode 이 QClipboard::Selection 인 경우 데이터가 전역 마우스 선택 영역에 저장됩니다.
이것은 속기입니다:
image(), setPixmap() 및 setMimeData()도 참조하세요 .
void QClipboard::setMimeData(QMimeData *src, QClipboard::Mode mode = Clipboard)
클립보드 데이터를 src 로 설정합니다. 데이터의 소유권이 클립보드로 이전됩니다. 데이터를 제거하려면 clear()를 호출하거나 새 데이터로 setMimeData()를 다시 호출하세요.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 데이터가 전역 클립보드에 저장됩니다. mode 가 QClipboard::Selection 인 경우 데이터는 전역 마우스 선택 영역에 저장됩니다. mode 이 QClipboard::FindBuffer 인 경우 데이터는 검색 문자열 버퍼에 저장됩니다.
setText(), setImage() 및 setPixmap() 함수는 각각 텍스트, 이미지 및 픽셀맵 데이터를 설정하기 위한 간단한 래퍼입니다.
mimeData()도 참조하세요 .
void QClipboard::setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard)
pixmap 을 클립보드에 복사합니다. setImage ()보다 속도가 느린 이유는 QPixmap 을 QImage 으로 먼저 변환해야 하기 때문입니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 픽셀맵이 전역 클립보드에 저장됩니다. mode 이 QClipboard::Selection 인 경우 픽셀맵은 전역 마우스 선택 영역에 저장됩니다.
pixmap(), setImage() 및 setMimeData()도 참조하세요 .
void QClipboard::setText(const QString &text, QClipboard::Mode mode = Clipboard)
text 을 일반 텍스트로 클립보드에 복사합니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 텍스트는 전역 클립보드에 저장됩니다. mode 이 QClipboard::Selection 인 경우 텍스트는 전역 마우스 선택 영역에 저장됩니다. mode 이 QClipboard::FindBuffer 인 경우 텍스트가 검색 문자열 버퍼에 저장됩니다.
text() 및 setMimeData()도 참조하십시오 .
bool QClipboard::supportsFindBuffer() const
클립보드가 별도의 검색 버퍼를 지원하는 경우 true
를 반환하고, 그렇지 않으면 false
을 반환합니다.
bool QClipboard::supportsSelection() const
클립보드가 마우스 선택을 지원하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
QString QClipboard::text(QClipboard::Mode mode = Clipboard) const
클립보드 텍스트를 일반 텍스트로 반환하거나 클립보드에 텍스트가 없는 경우 빈 문자열을 반환합니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 전역 클립보드에서 텍스트가 검색됩니다. mode 가 QClipboard::Selection 인 경우 텍스트는 전역 마우스 선택 영역에서 검색됩니다. mode 가 QClipboard::FindBuffer 인 경우 검색 문자열 버퍼에서 텍스트가 검색됩니다.
setText() 및 mimeData()도 참조하십시오 .
QString QClipboard::text(QString &subtype, QClipboard::Mode mode = Clipboard) const
이 함수는 오버로드된 함수입니다.
하위 유형 subtype 의 클립보드 텍스트를 반환하거나 클립보드에 텍스트가 없는 경우 빈 문자열을 반환합니다. subtype 이 null이면 모든 하위 유형을 사용할 수 있으며 subtype 은 선택한 하위 유형으로 설정됩니다.
mode 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. mode 가 QClipboard::Clipboard 인 경우 텍스트는 전역 클립보드에서 검색됩니다. mode 이 QClipboard::Selection 인 경우 전역 마우스 선택에서 텍스트가 검색됩니다.
subtype 의 일반적인 값은 "plain" 및 "html"입니다.
키 이벤트 핸들러 등에서 이 함수를 반복적으로 호출하면 속도가 느려질 수 있습니다. 이러한 경우에는 dataChanged()
신호를 대신 사용해야 합니다.
© 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.