【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();    //获取拖入的文件名
    ... //后续处理
}



                        
原文链接:https://blog.csdn.net/weixin_38734534/article/details/132234449

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐