【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();elseevent->ignore();//否則不接受事件
}
void MainWindow::dropEvent(QDropEvent*event) //放下事件
{const QMimeData*qm=event->mimeData();//獲取MIMEDatamFileName = qm->urls()[0].toLocalFile(); //獲取拖入的文件名... //后續處理
}