Posts Tagged ‘遍历文件夹’
QT拖拽文件、文件夹及遍历文件夹简单案例
星期五, 九月 19th, 2014 137 views首先是实现QT的窗体拖拽功能将文件拖拽进入Mainwindow,需要实现代码如下:
1 2 3 4 5 6 7 | MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setAcceptDrops(true);//将Mainwindow设置成可相应拖拽事件 } |
这里的 setAcceptDrops(true); 将Mainwindow设置成可相应拖拽事件,接下来,重载dragEnterEvent和dropEvent方法,实现对拖拽内容的判断和操作,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | //拖入Mainwindow时触发 void MainWindow::dragEnterEvent(QDragEnterEvent *event){ if(event->mimeData()->hasUrls()) { foreach(QUrl url, event->mimeData()->urls()) { if(!url.isEmpty()) event->accept();//界面反馈表示可拖拽 } return; } else { event->ignore();//界面反馈表示不可拖拽 } } //松开鼠标后触发 void MainWindow::dropEvent(QDropEvent *event) { if(event->mimeData()->hasUrls()) { foreach(QUrl url, event->mimeData()->urls()) { QFileInfo fileInfo(url.toString()); QString filePath = fileInfo.filePath().remove(0, QDir::currentPath().size() + 9); if(fileInfo.fileName().contains(".")){//根据是否带"."判断是否是文件夹 //属于文件 }else{ //属于文件夹 FindFile(filePath);//遍历文件夹递归函数 } } return; } return; } |