【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();	//获取拖入的文件名
    ... //后续处理
}
相关推荐
房开民18 小时前
c++总结
java·开发语言·c++
毕设源码-赖学姐18 小时前
【开题答辩全过程】以 基于Java的医院器材管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
float_com19 小时前
【java常用API】----- Arrays
java·开发语言
不会写DN19 小时前
PHP 中的文件读写与上传
android·开发语言·php
LuckyTHP20 小时前
迁移shibboleth java获取shibboleth用户信息
java·开发语言
客卿12320 小时前
数论===质数统计(暴力法,)
java·开发语言
Σίσυφος190020 小时前
C++ 多肽经典面试题
开发语言·c++·面试
csdn_aspnet21 小时前
C# 求n边凸多边形的对角线数量(Find number of diagonals in n sided convex polygon)
开发语言·算法·c#
qq_2546744121 小时前
Docker 中的 镜像(
开发语言
桌面运维家21 小时前
Windows权限管理进阶:UAC配置与安全策略实战
windows