一、描述
QClipboard 类提供对窗口系统剪贴板的访问。
应用程序中有一个 QClipboard 对象,可通过 QGuiApplication::clipboard() 访问。
QClipboard *clipboard = QGuiApplication::clipboard();
QString originalText = clipboard->text();
clipboard->setText(newText);
二、类型成员
1、enum QClipboard::Mode:此枚举类型用于控制 mimeData()、setMimeData() 和相关函数使用系统剪贴板的哪一部分。
- Clipboard:应该从全局剪贴板存储和检索数据。
- Selection:应该从全局鼠标选择中存储和检索数据。仅在具有全局鼠标选择的系统(例如 X11)上提供对选择的支持。
- FindBuffer:应该从 Find 缓冲区存储和检索数据。此模式用于在 macOS 上保存搜索字符串。
三、成员函数
1、【信号】void changed(QClipboard::Mode mode)
当剪贴板模式发生更改时,将发出此信号。
2、【信号】void dataChanged()
此信号在剪贴板数据更改时发出。
3、【信号】void findBufferChanged()
更改查找缓冲区时会发出此信号。这仅适用于 macOS。
4、【信号】void selectionChanged()
选择改变时发出此信号。这仅适用于支持选择的窗口系统,例如 X11。Windows 和 macOS 不支持选择。
5、void clear(QClipboard::Mode mode = Clipboard)
清除剪贴板内容。mode 参数用于控制使用系统剪贴板的哪一部分。
6、QImage image(QClipboard::Mode mode = Clipboard)
返回剪贴板图像,如果剪贴板不包含图像或包含不受支持的图像格式的图像,则返回空图像。mode 参数用于控制使用系统剪贴板的哪一部分。
void setImage(const QImage &image, QClipboard::Mode mode = Clipboard)
将图像复制到剪贴板。
7、bool ownsClipboard()
此剪贴板对象是否拥有剪贴板数据。
8、bool ownsFindBuffer()
此剪贴板对象是否拥有查找缓冲区数据。
bool supportsFindBuffer()
剪贴板是否支持单独的搜索缓冲区。
9、bool ownsSelection()
此剪贴板对象是否拥有鼠标选择数据。
bool supportsSelection()
剪贴板是否支持鼠标选择。
10、QPixmap pixmap(QClipboard::Mode mode = Clipboard)
返回剪贴板像素图,如果剪贴板不包含像素图,则返回 null。
void setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard)
将像素图复制到剪贴板。这比 setImage() 慢,因为它需要先将 QPixmap 转换为 QImage。
11、void setMimeData(QMimeData *src, QClipboard::Mode mode = Clipboard)
设置剪贴板数据。数据的所有权被转移到剪贴板。如果要删除数据,调用 clear() 或使用新数据再次调用 setMimeData()。
setText()、setImage() 和 setPixmap() 函数是更简单的包装器,分别用于设置文本、图像和像素图数据。
12、void setText(const QString &text, QClipboard::Mode mode = Clipboard) /
QString text(QClipboard::Mode mode = Clipboard)
将文本作为纯文本复制到剪贴板。
13、QString text(QString &subtype, QClipboard::Mode mode = Clipboard)
返回子类型 subtype 中的剪贴板文本。如果 subtype 为空字符串,则任何子类型都是可接受的,并且 subtype 设置为所选的子类型。
subtype 的常用值是“plain”和“html”。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
w.show();
QClipboard *clipboard = QGuiApplication::clipboard();
QString sub = "html";
qDebug()<<clipboard->text(sub);
return a.exec();
}