news 2026/6/12 22:55:16

QMimeData 是 Qt 中数据交换的标准化载体。粘贴复制,跨应用的标准格式。也能自定义数据类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QMimeData 是 Qt 中数据交换的标准化载体。粘贴复制,跨应用的标准格式。也能自定义数据类型




// 示例:自定义 MIME 数据类(对应你代码中的 ShapeMimeData)classShapeMimeData:publicQMimeData{Q_OBJECTpublic:// 构造函数:传入要传递的图形项列表ShapeMimeData(constQList<QGraphicsItem*>&items):m_items(items){// 关键:设置自定义 MIME 类型,标识这是「图形项数据」setData("application/x-draw-shape",QByteArray());}// 获取自定义数据(图形项列表)QList<QGraphicsItem*>items()const{returnm_items;}// 重写 hasFormat:告诉外部「我支持这个自定义类型」boolhasFormat(constQString&mimeType)constoverride{returnmimeType=="application/x-draw-shape"||QMimeData::hasFormat(mimeType);}private:QList<QGraphicsItem*>m_items;// 存储自定义的图形项数据};
  1. 典型使用流程(对应你代码中的复制 / 粘贴)
    (1)复制(封装数据)
voidMainWindow::on_copy(){QGraphicsScene*scene=activeMdiChild()->scene();// 1. 创建自定义 MIME 数据,封装选中的图形项ShapeMimeData*data=newShapeMimeData(scene->selectedItems());// 2. 把 MIME 数据设置到剪贴板QApplication::clipboard()->setMimeData(data);}

(2)粘贴(解析数据)

voidMainWindow::on_paste(){QGraphicsScene*scene=activeMdiChild()->scene();// 1. 从剪贴板获取 MIME 数据constQMimeData*mimeData=QApplication::clipboard()->mimeData();// 2. 转换为自定义的 ShapeMimeData(判断类型)constShapeMimeData*shapeData=dynamic_cast<constShapeMimeData*>(mimeData);if(shapeData){// 3. 获取封装的图形项数据,执行粘贴逻辑foreach(QGraphicsItem*item,shapeData->items()){// 复制图形项、添加到场景...}}}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 19:27:46

本科生必看!万众偏爱的AI论文网站 —— 千笔ai写作

你是否曾为论文选题发愁&#xff0c;反复修改却总不满意&#xff1f;是否在查重和格式上耗费大量时间&#xff0c;却仍难达标&#xff1f;论文写作的每一步都像一场硬仗&#xff0c;让无数本科生倍感压力。而千笔AI&#xff0c;正是为了解决这些难题而生。它集智能写作、文献检…

作者头像 李华
网站建设 2026/6/12 23:01:39

Docker Desktop

1. 他是什么 可以把 Docker Desktop 想象成一个在个人电脑上创建和管理“标准化软件集装箱”的工具。在现实生活中&#xff0c;集装箱无论用哪艘船运输、用哪种卡车搬运&#xff0c;里面的货物都不会受影响&#xff0c;也无需关心外面的环境。Docker Desktop 就是这样一个为你…

作者头像 李华
网站建设 2026/6/10 19:30:42

python SQLAlchemy 库,深度解析

1. SQLAlchemy 是什么 SQLAlchemy 是一个用于 Python 的数据库工具包。它的核心功能是提供一种高效、灵活的方式来操作数据库&#xff0c;而不必直接编写复杂的 SQL 语句。你可以把它想象成一个“翻译官”&#xff0c;它能让 Python 代码和数据库之间进行顺畅的对话。数据库通…

作者头像 李华
网站建设 2026/6/13 12:17:59

高频方波电压注入零低速IPMSM无感控制算法仿真,在估计的d轴注入高频方波电压来估计转子位置

高频方波电压注入零低速IPMSM无感控制算法仿真&#xff0c;在估计的d轴注入高频方波电压来估计转子位置&#xff0c;具有较高的稳态精度和动态性能。 该仿真调试效果不错&#xff0c;曾应用到实际电机中去。在IPMSM无感控制领域折腾过的朋友都知道&#xff0c;零低速下的转子位…

作者头像 李华
网站建设 2026/6/9 15:38:36

小程序计算机毕设之基于SpringBoot的社区线上团购系统基于springboot+小程序的社区GO团购活动小程序的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/10 19:29:19

小程序毕设项目:基于springboot+小程序的社区GO团购活动小程序的设计与实现(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华