一、常用数据类型

QClipboard类提供了对操作系统剪切板的操作接口,最常用的做法是复制粘贴文本,如下面示例

QClipboard *clipboard = QGuiApplication::clipboard();
QString originalText = clipboard->text(); //获得剪切板中的文本(粘贴)
...
clipboard->setText(newText); //往剪切板里写文本(复制)

QClipboard 提供了几组函数用来访问常见的数据类型,如果我们想操作的数据类型是QString、QImage或QPixmap,可以直接使用这些接口。

QImage image(QClipboard::Mode mode = Clipboard) const
void setImage(const QImage &image, QClipboard::Mode mode = Clipboard)QPixmap pixmap(QClipboard::Mode mode = Clipboard) const
void setPixmap(const QPixmap &pixmap, QClipboard::Mode mode = Clipboard)QString text(QClipboard::Mode mode = Clipboard) const
QString text(QString &subtype, QClipboard::Mode mode = Clipboard) const
void setText(const QString &text, QClipboard::Mode mode = Clipboard)

二、自定义数据类型

如果想将自定义的数据类型写进系统剪切板,并可以从系统剪切板读到我们写进去的自定义的数据类型,可以使用QMimeData+QDataStream。下面举一个简单示例。

#include <QApplication>
#include <QPushButton>
#include <QClipboard>
#include <QMimeData>
#include <QDebug>struct Device
{int index;QString text;
};void setDeviceToClipboard(struct Device &d)
{QByteArray itemData;QDataStream dataStream(&itemData, QIODevice::WriteOnly);dataStream << d.index;dataStream << d.text;QMimeData *mimeData = new QMimeData;mimeData->setData("application/itemdata", itemData);QClipboard *clipboard = QApplication::clipboard();clipboard->setMimeData(mimeData);
}struct Device *getDeviceFromClipboard()
{const QClipboard *clipboard = QApplication::clipboard();const QMimeData *mimeData = clipboard->mimeData();if (mimeData->hasFormat("application/itemdata")){QByteArray itemData = mimeData->data("application/itemdata");QDataStream dataStream(&itemData, QIODevice::ReadOnly);struct Device *pDevice = new struct Device;dataStream >> pDevice->index;dataStream >> pDevice->text;return pDevice;}return nullptr;
}int main(int argc, char *argv[])
{QApplication a(argc, argv);struct Device d1;d1.index = 1;d1.text = "device1";//往剪切板写自定义数据setDeviceToClipboard(d1);//从剪切板读自定义数据struct Device *pDevice = getDeviceFromClipboard();if (pDevice != nullptr){qDebug() << pDevice->index;qDebug() << pDevice->text;}return 0;
}

Qt剪切板QClipboard 复制粘贴自定义数据相关推荐

  1. python模块-win32clipboard-访问windows剪切板-实现复制粘贴

    win32clipboard 1.安装模块 pip install win32 import win32con import win32clipboard as cpcp.OpenClipboard( ...

  2. QT复制文本、图片到剪切板-QClipboard

    QT复制文本.图片到剪切板-QClipboard 1. 概述 2. 代码示例 1. 概述 复制文本或图片到剪切板在QT中可以使用QClipboard进行操作 2. 代码示例 #include &quo ...

  3. html5图片剪切板,原生js实现基于base64数据复制图片到剪切板,可以粘贴出图片,模拟浏览器复制功能。...

    原生js实现基于base64数据复制图片到剪切板,可以粘贴出图片,模拟浏览器复制功能.前言: 初次发帖排版略丑,见谅.之前我们这边有个需求就是说,前端通过canvas截图然后, 点击一个按钮实现复制截 ...

  4. vim在系统剪切板的复制与粘贴

    以前就遇到过的问题.有如下情景: 1.假设现在我要将文件a的部分内容复制到文件b中,一般情况,我会用vs或者sp命令打开这两个文件然后用y和p进行复制粘贴.但是如果分别用vim打开这两个文件就不能完成 ...

  5. ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解

    一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...

  6. 服务器剪切板无法完成粘贴的解决方案

    从本机粘贴数据至服务器时,服务器可以粘贴,但是操作过后数据并没有真正粘贴成功,解决办法如下: 1.在服务器底部导航栏右键,打开任务管理器 2.在任务管理器的进程中,找到"RDP 剪切板监视程 ...

  7. c# 操作剪切板,复制文本或文件

    1.将文本内容放入剪切板 Clipboard.SetDataObject("要复制的内容");//复制内容到粘贴板 2.将文本内容从剪切板取出               IDat ...

  8. Python快速复制粘贴ins数据,采集网站内视频内容

    Ins(照片墙)是一款运行在移动端上的社交应用,以一种快速.美妙和有趣的方式将你随时抓拍下的图片彼此分享 本篇文章主要是如何"高速复制粘贴"Ins里的视频 环境使用 Python ...

  9. Python“快速复制粘贴”ins数据,一个简单的外国分享网站

    序言 Instagram(照片墙)是一款运行在移动端上的社交应用,以一种快速.美妙和有趣的方式将你随时抓拍下的图片彼此分享,Facebook公司旗下社交应用 本篇文章主要是如何"高速复制粘贴 ...

最新文章

  1. python3 字符串总结
  2. 图像窗口方面 window
  3. 不同操作系统之间的网络配置
  4. Deep learning:一(基础知识_1)
  5. QT的QTableWidget类的使用
  6. 如何快速入手一个JavaWeb项目
  7. 修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误
  8. ios uiwindow弹窗_iOS 你需要的弹窗大全
  9. vsphere虚拟克隆虚拟服务器,vSphere实战攻略2:虚拟机模板与克隆
  10. 使用springboot集成jseesite
  11. 手机全部零件名称图片_【直播课】一条记录中显示多张图片
  12. linux pid t 头文件_Linux中 pid_t 类型的定义.
  13. 【TiChoo资讯站】
  14. 21世纪最需要的7种人才
  15. python库之pyserial用法,pyserial和serial的区别
  16. 台式计算机 按键盘字母键 没反应6,电脑键盘数字键失灵-键盘字母上面数字键有的失灵不能用怎么?键盘字母上面数字键有的失灵 爱问知识人...
  17. 从0开始的appium+Android+python自动抢红包世界生活
  18. 【每天学习一点新知识】常见逻辑漏洞
  19. 电热玻璃水壶CE认证检测标准介绍
  20. Cesium 添加天地图三维地形

热门文章

  1. 污水处理流程图模板分享 怎样绘制污水处理流程图
  2. 计算机工作原理可以概括,计算机工作流程
  3. 写一下自已对ctf的了解,以便日后自已需要
  4. 阻止YouTube视频在Firefox中自动播放
  5. 电脑城 SUN GHOST WIN7 SP1 旗舰装机版V1.0
  6. 安装安全类软件进行了android签名漏洞修补,魅蓝Note刷机教程 升级固件方法详解...
  7. zabbix系列:告警压制、控制(告警每10分钟一次、告警一直出现、告警只出现一次)
  8. 电脑的常用快捷键常用快捷键
  9. 桌面应用程序——绘制彩虹
  10. 阿尔法元100:0战胜哥哥阿尔法狗,背后却是让全人类惶恐的故事