The QClipboard 類提供對窗口係統剪貼闆的訪問。 更多...
| 頭: | #include <QClipboard> |
| 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 () |
| const QMetaObject | staticMetaObject |
The QClipboard 類提供對窗口係統剪貼闆的訪問。
剪貼闆提供在應用程序之間拷貝和粘貼數據的簡單機製。
QClipboard 支持相同數據類型如 QDrag 所做的,且使用類似機製。對於高級剪貼闆用法,閱讀 拖放 .
存在單個 QClipboard 對象在應用程序中,可訪問作為 QGuiApplication::clipboard ().
範例:
QClipboard *clipboard = QGuiApplication::clipboard(); QString originalText = clipboard->text(); ... clipboard->setText(newText);
QClipboard 特徵化瞭一些訪問常見數據類型的方便函數: setText () 允許交換 Unicode 文本和 setPixmap () 和 setImage () 允許交換 QPixmap 和 QImage 在應用程序之間。 setMimeData () 函數最具靈活性:它允許添加任何 QMimeData 到剪貼闆。這些中的每個都有相應 Getter,如 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")); }
x-special/gnome-copied-files
MIME 類型,具有以剪切/拷貝動作開始的數據,換行符和文件 URL。
macOS supports a separate find buffer that holds the current search string in Find operations. This find clipboard can be accessed by specifying the FindBuffer 模式。
另請參閱 QGuiApplication .
此枚舉類型用來控製係統剪貼闆的哪一部分將用於 QClipboard::mimeData (), QClipboard::setMimeData () 和相關函數。
| 常量 | 值 | 描述 |
|---|---|---|
QClipboard::Clipboard
|
0
|
指示應該從全局剪貼闆,存儲和檢索數據。 |
QClipboard::Selection
|
1
|
指示應該從全局鼠標選定,存儲和檢索數據。支持
Selection
僅在具有全局鼠標選定 (如 X11) 的係統中提供。
|
QClipboard::FindBuffer
|
2
|
indicates that data should be stored and retrieved from the Find buffer. This mode is used for holding search strings on macOS . |
另請參閱 QClipboard::supportsSelection ().
[signal]
void
QClipboard::
changed
(
QClipboard::Mode
mode
)
此信號被發射當數據對於給定剪貼闆 mode 改變。
該函數在 Qt 4.2 引入。
另請參閱 dataChanged (), selectionChanged (),和 findBufferChanged ().
清零剪貼闆內容。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,此函數清零全局剪貼闆內容。若 mode is QClipboard::Selection ,此函數清零全局鼠標選定內容。若 mode is QClipboard::FindBuffer ,此函數清零搜索字符串緩衝。
另請參閱 QClipboard::Mode and supportsSelection ().
[signal]
void
QClipboard::
dataChanged
()
此信號被發射,當剪貼闆數據改變時。
On macOS and with Qt version 4.3 or higher, clipboard changes made by other applications will only be detected when the application is activated.
另請參閱 findBufferChanged (), selectionChanged (),和 changed ().
[signal]
void
QClipboard::
findBufferChanged
()
This signal is emitted when the find buffer is changed. This only applies to macOS .
采用 Qt 4.3 或更高版本,由其它應用程序所做的剪貼闆改變,僅當應用程序被激活時纔檢測。
該函數在 Qt 4.2 引入。
另請參閱 dataChanged (), selectionChanged (),和 changed ().
返迴剪貼闆圖像,或返迴 null 圖像若剪貼闆不包含圖像,或者若它包含不被支持的圖像格式的圖像。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,圖像檢索自全局剪貼闆。若 mode is QClipboard::Selection ,圖像檢索自全局鼠標選定。
另請參閱 setImage (), pixmap (), mimeData (),和 QImage::isNull ().
返迴指針指嚮 QMimeData 錶示的當前剪貼闆數據 (可以為 null 若給定 mode 不被平颱支持)。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,數據檢索自全局剪貼闆。若 mode is QClipboard::Selection ,數據檢索自全局鼠標選定。若 mode is QClipboard::FindBuffer ,數據檢索自搜索字符串緩衝。
The text (), image (),和 pixmap () 函數是用於檢索文本、圖像及像素圖數據的更簡單包裝器。
注意: 返迴指針可能變為失效,當剪貼闆內容改變時;通過調用某一 setter 函數或在外部通過係統剪貼闆改變。
另請參閱 setMimeData ().
返迴
true
若此剪貼闆對象擁有剪貼闆數據;否則返迴
false
.
返迴
true
若此剪貼闆對象擁有查找緩衝數據;否則返迴
false
.
該函數在 Qt 4.2 引入。
返迴
true
若此剪貼闆對象擁有鼠標選定數據;否則返迴
false
.
返迴剪貼闆像素圖,或 null 若剪貼闆不包含像素圖。注意,這可能丟失信息。例如,若圖像為 24 位和顯示為 8 位,則結果將被轉換為 8 位,且若圖像擁有 Alpha 通道,則結果僅僅擁有遮罩。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,像素圖檢索自全局剪貼闆。若 mode is QClipboard::Selection ,像素圖檢索自全局鼠標選定。
另請參閱 setPixmap (), image (), mimeData (),和 QPixmap::convertFromImage ().
[signal]
void
QClipboard::
selectionChanged
()
This signal is emitted when the selection is changed. This only applies to windowing systems that support selections, e.g. X11. Windows and macOS don't support selections.
另請參閱 dataChanged (), findBufferChanged (),和 changed ().
拷貝 image 到剪貼闆。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,圖像存儲在全局剪貼闆中。若 mode is QClipboard::Selection ,數據存儲在全局鼠標選定中。
這是簡寫對於:
QMimeData *data = new QMimeData; data->setImageData(image); clipboard->setMimeData(data, mode);
另請參閱 image (), setPixmap (),和 setMimeData ().
將剪貼闆數據設為 src 。將數據的所有權轉移給剪貼闆。若想要移除數據,調用 clear () 或調用 setMimeData() 再次采用新數據。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,數據存儲在全局剪貼闆中。若 mode is QClipboard::Selection ,數據存儲在全局鼠標選定中。若 mode is QClipboard::FindBuffer ,數據存儲在搜索字符串緩衝中。
The setText (), setImage () 和 setPixmap () 函數是分彆設置文本、圖像及像素圖數據的更簡單包裝器。
另請參閱 mimeData ().
拷貝 pixmap 到剪貼闆。注意,這更慢相比 setImage () 因為它需要轉換 QPixmap 到 QImage 首先。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,像素圖存儲在全局剪貼闆中。若 mode is QClipboard::Selection ,像素圖存儲在全局鼠標選定中。
另請參閱 pixmap (), setImage (),和 setMimeData ().
拷貝 text 到剪貼闆以純文本形式。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,文本存儲在全局剪貼闆中。若 mode is QClipboard::Selection ,文本存儲在全局鼠標選定中。若 mode is QClipboard::FindBuffer ,文本存儲在搜索字符串緩衝中。
另請參閱 text () 和 setMimeData ().
返迴
true
若剪貼闆支持單獨搜索緩衝;否則返迴
false
.
返迴
true
若剪貼闆支持鼠標選定;否則返迴
false
.
以純文本形式返迴剪貼闆文本,或空字符串若剪貼闆未包含任何文本。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,文本檢索自全局剪貼闆。若 mode is QClipboard::Selection ,文本檢索自全局鼠標選定。若 mode is QClipboard::FindBuffer ,文本檢索自搜索字符串緩衝。
另請參閱 setText () 和 mimeData ().
這是重載函數。
返迴剪貼闆文本按子類型 subtype ,或空字符串若剪貼闆未包含任何文本。若 subtype 為 null,任何子類型都可接受,和 subtype 被設為選取子類型。
The mode 自變量用於控製使用係統剪貼闆的哪一部分。若 mode is QClipboard::Clipboard ,文本檢索自全局剪貼闆。若 mode is QClipboard::Selection ,文本檢索自全局鼠標選定。
常見值對於 subtype 為 plain 和 html。
請注意,重復調用此函數 (例如:從鍵事件處理程序) 可能很慢。在這種情況下,應使用
dataChanged()
信號代替。