Qt剪切板类QClipboard图片文本的复制与粘贴的使用介绍

     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().

上一篇:vue 一键复制文本内容 clipboard


下一篇:Chrome 66 新增异步剪贴板 API