news 2026/4/8 22:50:55

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/3/25 16:01:42

Excel分类汇总完全指南:从数据分析到分页打印的专业应用

&#x1f4ca; 第一章&#xff1a;分类汇总基础概念与原理 1.1 什么是分类汇总&#xff1f; 分类汇总是Excel中用于对数据按类别进行统计分析的强大功能。它能够&#xff1a; 自动识别数据类别并进行分组 对每个分组执行指定的计算&#xff08;求和、平均值、计数等&#xf…

作者头像 李华
网站建设 2026/3/24 11:47:40

一遍搞定全流程!专科生专属AI论文神器 —— 千笔·专业论文写作工具

你是否在论文写作中感到力不从心&#xff1f;选题无头绪、资料难查找、格式总出错、查重率高得让人焦虑……这些难题是否让你夜不能寐&#xff1f;别再独自挣扎&#xff0c;现在有了更聪明的解决方案——千笔AI。它专为专科生量身打造&#xff0c;从选题到查重&#xff0c;一站…

作者头像 李华
网站建设 2026/4/3 4:53:02

Python Pydantic库深度解析

Pydantic是一个在Python生态中广泛使用的库&#xff0c;特别在Flask开发中&#xff0c;它帮助处理数据验证和配置管理。下面从五个方面详细讲解Pydantic。1. 它是什么Pydantic是一个基于Python类型注解的库&#xff0c;用于数据验证和设置管理。它允许你通过定义类来描述数据的…

作者头像 李华
网站建设 2026/4/6 23:02:53

实测才敢推!专科生专属降AIGC网站 —— 千笔

在AI技术深度渗透学术写作的当下&#xff0c;越来越多的学生开始依赖AI工具辅助完成论文、报告等学术内容。然而&#xff0c;随着查重系统对AI生成内容的识别能力不断提升&#xff0c;如何有效降低AI率和重复率成为摆在学生面前的难题。面对市场上琳琅满目的降AI率与降重复率工…

作者头像 李华
网站建设 2026/3/24 10:28:34

python python-jose库,深度解析

1. 它是什么 python-jose 是一个用于处理 JWT&#xff08;JSON Web Token&#xff09;的 Python 库。JWT 可以理解为一种数字“通行证”&#xff0c;它允许在不同系统之间安全地传递信息&#xff0c;就像现实生活中的证件&#xff08;如身份证&#xff09;包含了你的基本信息且…

作者头像 李华
网站建设 2026/4/8 9:29:58

python python-multipart库,深度解析

处理 Web 表单和文件上传时&#xff0c;服务器需要解析一种特殊的“包裹格式”&#xff0c;这就是 multipart/form-data。python-multipart 就是一个专门高效拆解这种“数据包裹”的 Python 工具。 用一个生活中的场景来类比&#xff1a;你通过邮局寄一个包裹&#xff0c;里面…

作者头像 李华