实现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(); // 确认丢弃
    }
}
相关推荐
xnuscd38 分钟前
Milvus概念
数据库·学习·mysql
代码欢乐豆1 小时前
软件工程第13章小测
服务器·前端·数据库·软件工程
EasyNTS1 小时前
H5流媒体播放器EasyPlayer.js网页直播/点播播放器如果H.265视频在播放器上播放不流畅,可以考虑的解决方案
javascript·音视频·h.265
望获linux2 小时前
在 ARM 平台上如何实现Linux系统的1秒启动
linux·服务器·开发语言·数据库·操作系统·嵌入式操作系统·arm平台
漫天转悠2 小时前
MySQL 七种JOIN连接详解
数据库·mysql
尘浮生2 小时前
Java项目实战II基于Java+Spring Boot+MySQL的智能停车计费系统(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·mysql·微信小程序·maven
quintin-lee2 小时前
PostgreSQL中的内存上下文管理
数据库·postgresql
蚂蚁在飞-3 小时前
一个高度可扩展的 Golang ORM 库【GORM】
数据库·oracle·golang
hai405873 小时前
Spring Boot整合Redis Stack构建本地向量数据库相似性查询
数据库·spring boot·redis