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

QT的dropEvent函数进入不了

在使用QT想实现拖拽功能的时候,发现了dropEvent没有调用运行,遂查找原因:
首先是网上都说要在dragEnterEvent里面使用event->accept();
但我这边在出现问题之前就已经这样做了:

void CanvasView::dragEnterEvent(QDragEnterEvent *event) {
    qDebug() << "Drag enter event received";  // 确认事件是否被触发
    if (event->mimeData()->hasFormat("application/x-moduleitem")) {
        event->acceptProposedAction();  // 接受拖拽
    } else {
        event->ignore();  // 不支持的 MIME 类型
    }
}

在这之后我看到一篇博客中有问题答案:
博客传送门
在博客中第五条说明了,如果使用的类是QGraphicsView,需要重写一下dragMoveEvent,也就是:

//.h:
void dragMoveEvent(QDragMoveEvent *event) override;
//.cpp:
void CanvasView::dragMoveEvent(QDragMoveEvent *event) {
    event->accept();  // 接受拖拽事件
}

http://www.kler.cn/a/312639.html

相关文章:

  • 回归分析学习
  • 后端:Aop 面向切面编程
  • PaaS云原生:分布式集群中如何构建自动化压测工具
  • 【入门篇】A+B Problem——多语言版
  • c语言数据结构与算法--简单实现队列的入队和出队
  • 深度学习-图像评分实验(TensorFlow框架运用、读取处理图片、模型建构)
  • 平滑损失对生成图像的影响和使用场景
  • 跟着DAMA学数据管理--数据管理框架
  • 身份证实名认证的应用场景-身份证识别api
  • 人工智能安全治理新篇章:《2024人工智能安全治理框架1.0版》深度解读@附20页PDF文件下载
  • cas 5.3服务器搭建
  • 【busybox记录】【shell指令】stdbuf
  • MySQL —— 索引
  • C++ | Leetcode C++题解之第407题接雨水II
  • Windows下SDL2创建最简单的一个窗口
  • 华为昇腾服务器+Atlas300IPro*2 部署Dify+MindIE+Embedding+Rerank实现Qwen2.5-7B全国产化的大模型推理平台
  • stm32f411ceu6芯片学习
  • CSP-J 算法基础 归并排序
  • VideoPlayer插件的用法
  • 初体验《SpringCloud 核心组件Eureka》
  • 栈的各种接口的实现(C)
  • 软设9.20
  • 828华为云征文|基于华为云Flexus X实例快速搭建Halo博客平台
  • 后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0916)
  • 基于SSM+Vue+MySQL的家教服务管理系统
  • Spring Boot中使用注解拦截器实现通用校验器和基于角色的权限注解