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()
信号代替。