QClipboard 类提供对窗口系统剪贴板的访问。 更多...
头: | #include <QClipboard> |
CMake: |
find_package(Qt6 COMPONENTS Gui REQUIRED)
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 () 允许交换 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 支持单独查找缓冲,以保持查找操作中的当前搜索字符串。此查找剪贴板可以被访问通过指定 FindBuffer 模式。
另请参阅 QGuiApplication .
此枚举类型用来控制系统剪贴板的哪一部分将用于 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 ().
[signal]
void
QClipboard::
dataChanged
()
此信号被发射,当剪贴板数据改变时。
在 macOS 和采用 Qt 4.3 或更高版本,由其它应用程序所做的剪贴板改变,仅当应用程序被激活时才检测。
另请参阅 findBufferChanged (), selectionChanged (),和 changed ().
[signal]
void
QClipboard::
findBufferChanged
()
此信号被发射,当查找缓冲改变时。这仅适用于 macOS。
采用 Qt 4.3 或更高版本,由其它应用程序所做的剪贴板改变,仅当应用程序被激活时才检测。
另请参阅 dataChanged (), selectionChanged (),和 changed ().
[signal]
void
QClipboard::
selectionChanged
()
此信号被发射,当选定改变时。这只适用于支持选定的窗口系统,如 X11。Windows 和 macOS 不支持选定。
另请参阅 dataChanged (), findBufferChanged (),和 changed ().
清零剪贴板内容。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,此函数清零全局剪贴板内容。若 mode is QClipboard::Selection ,此函数清零全局鼠标选定内容。若 mode is QClipboard::FindBuffer ,此函数清零搜索字符串缓冲。
另请参阅 QClipboard::Mode and supportsSelection ().
返回剪贴板图像,或返回 null 图像若剪贴板不包含图像,或者若它包含不被支持的图像格式的图像。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,图像检索自全局剪贴板。若 mode is QClipboard::Selection ,图像检索自全局鼠标选定。
另请参阅 setImage (), pixmap (), mimeData (),和 QImage::isNull ().
返回指针指向
QMimeData
表示为当前剪贴板数据 (可以为
nullptr
若给定
mode
不被平台支持)。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,数据检索自全局剪贴板。若 mode is QClipboard::Selection ,数据检索自全局鼠标选定。若 mode is QClipboard::FindBuffer ,数据检索自搜索字符串缓冲。
text (), image (),和 pixmap () 函数是用于检索文本、图像及像素图数据的更简单包装器。
注意: 返回指针可能变为失效,当剪贴板内容改变时;通过调用某一 Setter 函数或在外部通过系统剪贴板改变。
另请参阅 setMimeData ().
返回
true
若此剪贴板对象拥有剪贴板数据;否则返回
false
.
返回
true
若此剪贴板对象拥有查找缓冲数据;否则返回
false
.
返回
true
若此剪贴板对象拥有鼠标选定数据;否则返回
false
.
返回剪贴板像素图,或 null 若剪贴板不包含像素图。注意,这可能丢失信息。例如,若图像为 24 位和显示为 8 位,则结果将被转换为 8 位,且若图像拥有 Alpha 通道,则结果仅仅拥有遮罩。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,像素图检索自全局剪贴板。若 mode is QClipboard::Selection ,像素图检索自全局鼠标选定。
另请参阅 setPixmap (), image (), mimeData (),和 QPixmap::convertFromImage ().
拷贝 image 到剪贴板。
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() 再次采用新数据。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,数据存储在全局剪贴板中。若 mode is QClipboard::Selection ,数据存储在全局鼠标选定中。若 mode is QClipboard::FindBuffer ,数据存储在搜索字符串缓冲中。
setText (), setImage () 和 setPixmap () 函数是分别设置文本、图像及像素图数据的更简单包装器。
另请参阅 mimeData ().
拷贝 pixmap 到剪贴板。注意,这更慢相比 setImage () 因为它需要转换 QPixmap 到 QImage 首先。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,像素图存储在全局剪贴板中。若 mode is QClipboard::Selection ,像素图存储在全局鼠标选定中。
另请参阅 pixmap (), setImage (),和 setMimeData ().
拷贝 text 到剪贴板以纯文本形式。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,文本存储在全局剪贴板中。若 mode is QClipboard::Selection ,文本存储在全局鼠标选定中。若 mode is QClipboard::FindBuffer ,文本存储在搜索字符串缓冲中。
另请参阅 text () 和 setMimeData ().
返回
true
若剪贴板支持单独搜索缓冲;否则返回
false
.
返回
true
若剪贴板支持鼠标选定;否则返回
false
.
以纯文本形式返回剪贴板文本,或空字符串若剪贴板未包含任何文本。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,文本检索自全局剪贴板。若 mode is QClipboard::Selection ,文本检索自全局鼠标选定。若 mode is QClipboard::FindBuffer ,文本检索自搜索字符串缓冲。
另请参阅 setText () 和 mimeData ().
这是重载函数。
返回剪贴板文本按子类型 subtype ,或空字符串若剪贴板未包含任何文本。若 subtype 为 null,任何子类型都可接受,和 subtype 被设为选取子类型。
mode 自变量用于控制使用系统剪贴板的哪一部分。若 mode is QClipboard::Clipboard ,文本检索自全局剪贴板。若 mode is QClipboard::Selection ,文本检索自全局鼠标选定。
常见值对于 subtype 为 plain 和 html。
请注意,重复调用此函数 (例如:从键事件处理程序) 可能很慢。在这种情况下,应使用
dataChanged()
信号代替。