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

本文介绍了如何在QT界面中使用dragEnterEvent和dropEvent处理文件拖拽,设置了窗口接受拖放功能,并通过检查文件类型后缀来决定是否接受拖拽。当文件被成功放下时,会获取文件名并进行后续处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

界面允许接受拖拽

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

setAcceptDrops(true);  
拖拽进入、放下事件

dragEnterEvent函数对拖动的文件进行过滤,如果不符合过滤条件按将无法拖拽进入窗口
dropEvent函数为拖进来后放下的事件,放入窗口后继续后续的处理

void dragEnterEvent(QDragEnterEvent*event);//拖拽进入事件
void dropEvent(QDropEvent*event);//放下事件
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();	//获取拖入的文件名
    ... //后续处理
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值