实现qt拖拽显示或者播放

  • 拖拽端处理:

第一步

cpp 复制代码
setAcceptDrops(true); // 允许拖拽

鼠标点击拖拽处理:

cpp 复制代码
void WidgetAdd::mousePressEvent(QMouseEvent *event){
        QDrag *drag = new QDrag(this);
        QMimeData *mimeData = new QMimeData;

        // 将当前 Widget 的标识作为 MIME 数据传递(可以根据需要更改)
        mimeData->setText(drawText);
        drag->setMimeData(mimeData);
        // 开始拖拽
        drag->exec();
}

接收端:

cpp 复制代码
setAcceptDrops(true); // 允许丢弃
cpp 复制代码
void WidgetRecv::dragEnterEvent(QDragEnterEvent *event)
{
    if (event->mimeData()->hasText()) {
        event->acceptProposedAction(); // 接受拖拽
    }
}

void WidgetRecv::dropEvent(QDropEvent *event)
{
    if (event->mimeData()->hasText()) {
        QString text = event->mimeData()->text();
        // 处理接收到的内容
        event->acceptProposedAction(); // 确认丢弃
    }
}
相关推荐
五阿哥永琪12 分钟前
MySQL 中 VARCHAR、TEXT 与 JSON 类型:区别、场景与选型指南
数据库·mysql·json
a95114164215 分钟前
Go语言如何操作OSS_Go语言阿里云OSS上传教程【完整】
jvm·数据库·python
2401_8971905515 分钟前
MySQL中如何利用LIMIT配合函数分页_MySQL分页查询优化
jvm·数据库·python
Polar__Star39 分钟前
C#怎么使用并发集合 C#ConcurrentDictionary和ConcurrentQueue线程安全集合怎么用【进阶】
jvm·数据库·python
xiaoshuaishuai844 分钟前
C# Codex 脚本编写
java·服务器·数据库·c#
Rooting++1 小时前
mysql 算一堆经纬度的距离总长
数据库·mysql
y = xⁿ1 小时前
MySQL:count(1)与count(*)有什么区别,深分页问题
android·数据库·mysql
苏渡苇1 小时前
5 分钟跑起 Redis(Docker 版)
数据库·redis·缓存·docker·redis入门
m0_493934531 小时前
Go语言中 & 与 - 的本质区别及指针使用详解
jvm·数据库·python
gjc5921 小时前
踩坑案例:容器方式部署的MySQL无法访问?
数据库·mysql