QT5 剪贴板操作

落爺英雄遲暮 提交于 2020-02-16 11:22:49

软件环境: QT5.8    系统: win10

用法非常简单,包含头文件,获取粘贴板对象操作就行了。

#include <QClipboard>        //包含头文件

1. 复制文本、设置文本

QClipboard *clipboard = QApplication::clipboard();   //获取系统剪贴板指针

clipboard->text();                                   //获取剪贴板内容

QString str_text = ui->lineEdit->text();
clipboard->setText(str_text);                        //设置剪贴板内容

2. 复制图片

QClipboard *clipboard = QApplication::clipboard();   //获取系统剪贴板指针

clipboard->setImage(QImage("G:\\zbox\\盒子.png"));   //设置图片到剪贴板

测试通过该方法复制的图片只能粘贴到控件上,若想能粘贴到文件夹生成图片文件,需要设置图片文件到粘贴板。 

3. 复制文件 

#include <QMimeData>            //包含需要用到的头文件
#include <QUrl>

QList<QUrl> file_list;  //文件列表


QUrl fileurl = QUrl::fromLocalFile("G:\\zbox\\盒子.png");   //待复制的文件 

if(fileurl.isValid())              //若复制的文件列表中,有文件路径不存在 ,则粘贴时不会成功
   file_list.push_back(fileurl);   //可设置多个文件,添加至文件列表

QMimeData *data=new QMimeData();   //数据容器,常用来描述保存在剪切板里信息,或者拖拽文件信息
data->setUrls(file_list);          //将文件列表设置到容器中
 
QClipboard *clipboard =QApplication::clipboard();  //获取系统剪贴板指针
clipboard->setMimeData(data);                      //拷贝文件至剪贴板

经测试,若复制的文件列表中,有文件路径不存在 ,则粘贴时不会成功,但是可以粘贴有效路径文件的快捷方式。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!