【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();	//获取拖入的文件名
    ... //后续处理
}
相关推荐
sugar椰子皮12 分钟前
【爬虫框架-5】实现一下之前的思路
开发语言·爬虫·python
沈询-阿里13 分钟前
AI Agent系列 - 1 什么是 ReAct Agent?
开发语言·javascript·ecmascript
沐知全栈开发17 分钟前
jEasyUI 创建异步树形菜单
开发语言
CN-Dust19 分钟前
MongoDB|Windows版安装教程(附资源)
数据库·windows·mongodb
2301_8035545220 分钟前
利用信号完成这个联动需求
java·开发语言
世转神风-22 分钟前
qt-弹框提示-界面提醒
开发语言·qt·策略模式
计算衎23 分钟前
基于python的FastAPI框架目录结构介绍、开发思路和标准开发模板总结
开发语言·python·fastapi
好学且牛逼的马23 分钟前
【手写Mybatis | version0.0.1 附带源码 项目文档】
java·开发语言·mybatis
wjykp25 分钟前
第八章异常
开发语言·python
~patience~27 分钟前
简单易懂的计数器(理解Qt的信号和槽机制)
开发语言·qt