【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();	//获取拖入的文件名
    ... //后续处理
}
相关推荐
@PHARAOH44 分钟前
HOW - Go 开发入门(一)
开发语言·后端·golang
myloveasuka8 小时前
Java与C++多态访问成员变量/方法 对比
java·开发语言·c++
2301_821700538 小时前
C++编译期多态实现
开发语言·c++·算法
奥地利落榜美术生灬8 小时前
c++ 锁相关(mutex 等)
开发语言·c++
xixihaha13248 小时前
C++与FPGA协同设计
开发语言·c++·算法
重庆小透明8 小时前
【java基础篇】详解BigDecimal
java·开发语言
ID_180079054738 小时前
模拟1688商品详情的Python API实现,返回符合风格的JSON数据
开发语言·python·json
小小怪7508 小时前
C++中的函数式编程
开发语言·c++·算法
金山几座8 小时前
C#学习记录-事件
开发语言·学习·c#
小杍随笔9 小时前
【Rust 语言编程知识与应用:基础数据类型详解】
开发语言·后端·rust