QClipboard Class
QClipboard 클래스는 윈도우 시스템 클립보드에 대한 접근 기능을 제공합니다. 더 보기...
| 헤더: | #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 가 지원하는 것과 동일한 데이터 유형을 지원하며, 유사한 메커니즘을 사용합니다. 클립보드의 고급 사용법에 대해서는 드래그 앤 드롭을 참조하십시오.
애플리케이션에는 단 하나의 QClipboard 객체가 있으며, QGuiApplication::clipboard()를 통해 접근할 수 있습니다.
예시:
QClipboard *clipboard = QGuiApplication::clipboard();
QString originalText = clipboard->text();
// etc.
clipboard->setText(newText);QClipboard는 일반적인 데이터 유형에 접근하기 위한 몇 가지 편리한 함수를 제공합니다. ` setText()`는 유니코드 텍스트를 교환할 수 있게 하며, ` setPixmap()` 및 ` setImage()`는 애플리케이션 간에 QPixmap과 QImage를 교환할 수 있게 합니다. ` setMimeData()` 함수는 최고의 유연성을 제공하며, 이를 통해 어떤 QMimeData 라도 클립보드에 추가할 수 있습니다. 이들 각각에 대응하는 가져오기 함수(getter)가 있습니다. 예를 들어, text(), image() 및 pixmap() 등이 있습니다. clear()를 호출하여 클립보드를 지울 수 있습니다.
다음은 이러한 함수 사용의 일반적인 예입니다:
void DropArea::paste()
{
const QClipboard *clipboard = QGuiApplication::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 유형과 관례가 사용되고 있습니다. 예를 들어, Nautilus는 파일이
x-special/gnome-copied-filesMIME 유형으로 제공되며, 데이터가 잘라내기/복사 작업, 줄 바꿈 문자, 파일의 URL 순서로 시작되기를 기대합니다.
macOS 사용자 참고 사항
macOS는 ‘찾기’ 작업 시 현재 검색어를 저장하는 별도의 찾기 클립보드를 지원합니다. 이 찾기 클립보드는 FindBuffer 모드를 지정하여 액세스할 수 있습니다.
Windows 및 macOS 사용자 참고 사항
- Windows와 macOS는 전역 마우스 선택 기능을 지원하지 않으며, 전역 클립보드만 지원합니다. 즉, 명시적인 복사나 잘라내기가 수행될 때만 텍스트가 클립보드에 추가됩니다.
- Windows와 macOS에는 소유권 개념이 없습니다. 클립보드는 완전히 전역적인 리소스이므로 모든 애플리케이션에 변경 사항이 알림됩니다.
Android 사용자 참고 사항
Android에서는 text/plain, text/html, text/uri-list MIME 유형만 지원됩니다.
QGuiApplication도 참조하십시오 .
멤버 유형 문서
enum QClipboard::Mode
이 열거형 유형은 ` QClipboard::mimeData()`, ` QClipboard::setMimeData()` 및 관련 함수가 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다.
| 상수 | 상수 | 상수값 |
|---|---|---|
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 인수는 시스템 클립보드의 어느 부분을 사용할지 제어하는 데 사용됩니다. QClipboard::Clipboard 가 mode 인 경우, 데이터는 전역 클립보드에서 가져옵니다. QClipboard::Selection 가 mode 인 경우, 데이터는 전역 마우스 선택 영역에서 가져옵니다. QClipboard::FindBuffer 가 mode 인 경우, 데이터는 검색 문자열 버퍼에서 가져옵니다.
text(), image() 및 pixmap() 함수는 텍스트, 이미지 및 픽스맵 데이터를 가져오기 위한 더 간단한 래퍼 함수입니다.
참고: 세터 함수 중 하나를 호출하거나 시스템 클립보드의 외부 변경으로 인해 클립보드 내용이 변경되면 반환된포인터가 무효화될 수 있습니다.
setMimeData()도 참조하십시오 .
bool QClipboard::ownsClipboard() const
이 클립보드 객체가 클립보드 데이터를 소유하고 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
bool QClipboard::ownsFindBuffer() const
이 클립보드 객체가 ‘find’ 버퍼 데이터를 소유하고 있으면 ` 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 를 클립보드에 복사합니다. 이 함수는 QPixmap 을 먼저 QImage 로 변환해야 하므로, setImage()보다 처리 속도가 느리다는 점에 유의하십시오.
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() 신호를 사용해야 합니다.
이 함수는 오버로드된 함수입니다.
© 2026 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.