当前位置: 首页 > news >正文

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()){// 复制图形项、添加到场景...}}}

http://www.jsqmd.com/news/358794/

相关文章:

  • 2026年我会推荐哪些IP归属地查询网站?
  • 《梦断代码》——软件项目的理想与现实
  • 《人月神话》中的项目管理陷阱与启示
  • 外贸站必备!WordPress经销商地图,多国家适配+自动检索,省爆客服力!
  • 当内容遇冷之后:系统化运营如何激活短视频生命力 - 品牌之家
  • 【取模】思源黑体 取模只显示一部分问题,或者挤在一起
  • Excel分类汇总完全指南:从数据分析到分页打印的专业应用
  • 历史课不再枯燥!老师用什么AI工具做历史人物生平教学视频?横评 3 类神器,这款让学生抢着听课
  • 直流无刷电机,直径38mm,径向长23.8mm,转速25000rpm,功率200W
  • 嵌入式Linux:线程同步(读写锁) - 教程
  • 运用 HTML5 Canvas 实现可交互的内容瀑布流(隐藏式运维模式)
  • 《一文搞懂PyTorch优化器:SGD/Adam原理、使用流程与实战调优指南》
  • 本科生必看!万众偏爱的AI论文网站 —— 千笔ai写作
  • 救命神器!AI论文平台 千笔写作工具 VS 知文AI,专为本科生量身打造!
  • 一遍搞定全流程!专科生专属AI论文神器 —— 千笔·专业论文写作工具
  • 单例模式管理模型客户端的几种实现方式
  • OpenClaw 最新保姆级飞书对接指南教程 搭建属于你的 AI 助手
  • 4.6 显存和缓存
  • Flutter for OpenHarmony:音律尺 - 基于Flutter的Web友好型节拍器开发与节奏可视化实现
  • Flutter for OpenHarmony:跨平台虚拟标尺实现指南 - 从屏幕测量原理到完整开发实践
  • Typora绘制-甘特图
  • Flutter for OpenHarmony:语桥 - 基于Flutter的离线多语言短语速查工具实现与国际化设计理念
  • 20. new关键字
  • Flutter for OpenHarmony:绿氧 - 基于Flutter的呼吸训练应用开发实践与身心交互设计
  • 2026年2月ppt免费生成平台权威推荐,智能生成效率与效果深度解析! - 品牌鉴赏师
  • Flutter for OpenHarmony:日迹 - 用 Flutter 打造极简习惯打卡日历的实现与设计哲学
  • Docker Desktop
  • Delphi接收从文件管理器拖放过来的文件名
  • python Uvicorn库,深度解析
  • Calico API:Kubernetes容器网络与安全的核心API定义库