QClipboard实现复制功能

在Qt中,我们可以使用QClipboard类来访问窗口系统的剪贴板对象。剪贴板为我们在不同的应用间拷贝粘贴数据提供了一种简单的机制。并且,其所支持的数据类型和Qt中的拖放操作所支持的类型相同。

另外,在QApplication类中,还为我们提供了一个静态方法clipboard(),我们可以使用该方法来获得应用程序的全局剪贴板对象。例如,
QClipboard *clipboard = QApplication::clipboard();
setText()可以用来传递Unicode字符串,setPixmap()和setImage()可以用来传递图片。遇到复杂的数据类型,则要借助于QMimeData类来完成。
QMimeData用于描述可以存储在剪贴板中并通过拖放机制传输的信息。QMimeData对象将它们持有的数据与相应的MIME类型相关联,以确保信息可以在应用程序之间安全地传输,并在同一应用程序中四处复制。
常用的类型
text() setText() text/plain
html() setHtml() text/html
url() setUrls() text/uri-list
imageData() setImageData() image/ *
colorData() setColorData() application/x-color
一般用setData来设置数据类型
case Link_Copy:
{
//解析发送过来的left 中的数据进行解析
QJsonDocument json = QJsonDocument::fromJson(QByteArray::fromPercentEncoding(left));
QVariantMap result = json.toVariant().toMap();
QString path = result[“path”].toString(); //获取到文件路径
QClipboard *clib = QApplication::clipboard();
QMimeData *mimData = new QMimeData();
//向剪切板去写入内容
mimData->setData(“text/uri-list”,QByteArray(“file:///”+path.toUtf8()));//这个“file:///”必须添加
qInfo()<<QByteArray(“file:///”+path.toUtf8());//这里注释查看路径和避免出现中文字符
clib->setMimeData(mimData);
break;
}
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值