Qt的剪切板相对于MFC来说,代码写起来要简单很多,提供的复制功能API也很好用,本篇博客介绍一下Qt的比较简单剪切板操作。
Qt剪切板类是QClipboard,该类封装了对常用文件格式的复制与粘贴,例如文本,图片等,
一 、文本的复制与粘贴
文本复制粘贴操作的方法如下:
QString text(Mode mode = Clipboard) const; QString text(QString& subtype, Mode mode = Clipboard) const; void setText(const QString &, Mode mode = Clipboard);
获取剪切板的文本,就调用text, 把复制的文本设置到剪切板就调用setText, 代码如下
QClipboard *pClip = QApplication::clipboard(); pClip->setText("Hello Qt, 这是Qt复制的内容");
需要包含的头文件
#include
二、图片的复制与粘贴
图片的操作稍微有点不同, 相关方法如下:
const QMimeData *mimeData(Mode mode = Clipboard ) const; void setMimeData(QMimeData *data, Mode mode = Clipboard); QImage image(Mode mode = Clipboard) const; QPixmap pixmap(Mode mode = Clipboard) const; void setImage(const QImage &, Mode mode = Clipboard); void setPixmap(const QPixmap &, Mode mode = Clipboard);
如果想获取剪切板的图片,需要调用mimeData方法,先获取Image的数据, 再转为QImage,例如下面的代码是将剪切板的图片保存为QImage:
QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); if (mimeData->hasImage()) { //将图片数据转为QImage QImage img = qvariant_cast(mimeData->imageData()); }
如果想把图片复制到剪切板,调用setImage或setPixmap。
三、剪切板的清除
clear().