实现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(); // 确认丢弃
    }
}
相关推荐
LjQ20405 分钟前
网络爬虫一课一得
开发语言·数据库·python·网络爬虫
烙印6019 分钟前
MyBatis原理剖析(二)
java·数据库·mybatis
RestCloud10 分钟前
如何通过ETLCloud实现跨系统数据同步?
数据库·数据仓库·mysql·etl·数据处理·数据同步·集成平台
你是狒狒吗12 分钟前
TM中,return new TransactionManagerImpl(raf, fc);为什么返回是new了一个新的实例
java·开发语言·数据库
奥修的灵魂44 分钟前
QT进阶之路:带命名空间的自定义控件在Qt设计器与qss中的使用技巧
qt·命名空间
Channing Lewis1 小时前
sql server如何创建表导入excel的数据
数据库·oracle·excel
秃头摸鱼侠1 小时前
MySQL安装与配置
数据库·mysql·adb
UGOTNOSHOT1 小时前
每日八股文6.3
数据库·sql
春末的南方城市2 小时前
Ctrl-Crash 助力交通安全:可控生成逼真车祸视频,防患于未然
人工智能·计算机视觉·自然语言处理·aigc·音视频
行云流水行云流水2 小时前
数据库、数据仓库、数据中台、数据湖相关概念
数据库·数据仓库