news 2026/4/16 15:24:31

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/4/3 6:18:12

Calico API:Kubernetes容器网络与安全的核心API定义库

&#x1f43e; Calico API Calico API是Project Calico项目的权威源代码&#xff0c;包含了该项目的API定义。它为Kubernetes容器网络和安全策略提供了一套标准化的类型定义和客户端工具&#xff0c;使开发者能够方便地构建、管理和自动化Calico网络和安全策略。 &#x1f31f;…

作者头像 李华
网站建设 2026/4/16 14:51:08

安卓证书在线生成_免费一键制作apk打包 Android一键制作工具

作为一个纯纯的编程小白&#xff0c;之前为了弄安卓证书愁得头都大了&#xff01;看教程要敲代码、配环境&#xff0c;步骤复杂到想哭&#xff0c;试了好几次都失败&#xff0c;差点以为要放弃做安卓应用了… 直到发现了咕噜分发的在线安卓证书生成工具&#xff0c;简直打开了新…

作者头像 李华
网站建设 2026/4/13 15:06:42

深入理解 Python 中的 yield 关键字

在 Python 编程中,yield 是一个关键而强大的语言特性,它使得函数能够以“惰性求值”和“状态保持”的方式逐步返回多个值。与普通函数通过 return 一次性返回结果不同,包含 yield 的函数被称为生成器函数,其调用结果是一个生成器对象。本文将系统地介绍 yield 的工作原理、…

作者头像 李华
网站建设 2026/4/1 23:03:09

科研效率拉满!2026 优质 AI 写论文软件精选(实测推荐)

核心推荐&#xff08;按优先级排序&#xff09;1. PaperRed&#xff08;首推⭐⭐⭐⭐⭐&#xff09;定位&#xff1a;国内学生专属全流程论文神器&#xff0c;毕业之家联动工具核心功能&#xff1a;一键生成论文初稿、智能查重降重、文献引用自动标注、格式自动排版、开题报告 …

作者头像 李华
网站建设 2026/4/15 16:43:44

毕业论文无忧:11个AI辅助写作网站精选

人工智能语言模型的快速发展显著改变了学术研究方式&#xff0c;特别是ChatGPT等工具自2022年推出后&#xff0c;AI在学术写作、数据分析、模式识别及决策辅助等领域广泛应用&#xff0c;帮助研究者提升效率。目前已有多种AI工具可支持毕业论文写作全流程&#xff0c;涵盖不同学…

作者头像 李华