【QT】窗口通过dragEnterEvent和dropEvent拖拽导入文件

【QT】窗口通过dragEnterEvent和dropEvent拖拽导入文件

界面允许接受拖拽

在界面的构造函数中设置接受拖拽放置文件

cpp 复制代码
setAcceptDrops(true);  

拖拽进入、放下事件

dragEnterEvent函数对拖动的文件进行过滤,如果不符合过滤条件按将无法拖拽进入窗口

dropEvent函数为拖进来后放下的事件,放入窗口后继续后续的处理

cpp 复制代码
void dragEnterEvent(QDragEnterEvent*event);//拖拽进入事件
void dropEvent(QDropEvent*event);//放下事件
cpp 复制代码
void MainWindow::dragEnterEvent(QDragEnterEvent*event)  //拖拽进入事件
{
    //如果类型后缀三个字符是xxx文件才能接受拖拽进入
   if(!event->mimeData()->urls()[0].fileName().right(3).compare("xxx"))
       event->acceptProposedAction();
    else
       event->ignore();//否则不接受事件
}
void MainWindow::dropEvent(QDropEvent*event)    //放下事件
{
    const QMimeData*qm=event->mimeData();//获取MIMEData
    mFileName = qm->urls()[0].toLocalFile();	//获取拖入的文件名
    ... //后续处理
}
相关推荐
兮动人11 分钟前
Java 单元测试中的 Mockito 使用详解与实战指南
java·开发语言·单元测试
武子康18 分钟前
Java-151 深入浅出 MongoDB 索引详解 性能优化:慢查询分析 索引调优 快速定位并解决慢查询
java·开发语言·数据库·sql·mongodb·性能优化·nosql
ajassi20001 小时前
开源 C++ QT QML 开发(二十一)多媒体--视频播放
c++·qt·开源
患得患失9492 小时前
【Turborepo】【Next】 Turborepo + Next.js 前后端精简搭建笔记(带官网)
开发语言·javascript·笔记
拓端研究室2 小时前
视频讲解|Python遗传算法GA在车辆路径规划VRP数据优化中的应用
开发语言·人工智能·r语言
xxxxxxllllllshi2 小时前
Cookie、Session、JWT、SSO,网站与 APP 登录持久化与缓存
java·开发语言·jvm·数据结构·缓存·面试
AI+程序员在路上2 小时前
QT6中QToolBox功能与应用
开发语言·qt
aerror2 小时前
json转excel xlsx文件
开发语言·python·json
workflower3 小时前
软件工程的知识领域
开发语言·算法·软件工程·个人开发·结对编程
JoannaJuanCV3 小时前
error: can‘t find Rust compiler
开发语言·后端·rust