【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();	//获取拖入的文件名
    ... //后续处理
}
相关推荐
周杰伦fans37 分钟前
AutoCAD .NET 二次开发:深入理解 EntityJig 的工作原理与正确实现
开发语言·.net
Bat U2 小时前
JavaEE|多线程初阶(七)
java·开发语言
谭欣辰3 小时前
C++ 排列组合完整指南
开发语言·c++·算法
love530love3 小时前
精简版|Claude-HUD 插件介绍 + 一键安装教程
人工智能·windows·笔记
foundbug9994 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
XDH_CS4 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql
秋94 小时前
MySQL 8.0.46 全平台安装与配置详解(Windows/Linux/macOS)
linux·windows·mysql
小短腿的代码世界4 小时前
Qt实时盈亏计算深度解析:从持仓数据到动态盈亏展示
开发语言·qt
善恶怪客4 小时前
LocalSend基本使用
windows