这里主要重写下面3种方法即可:
void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
void dragEnterEvent(QDragEnterEvent*event) Q_DECL_OVERRIDE;
void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
这里要注意,如果少了dragMoveEvent的话dropEvent不会被激发。
void MyListWidget::dropEvent(QDropEvent *event)
{
if(m_isDrag){
....
....
....
}
m_isDrag = false;
}
void MyListWidget::dragEnterEvent(QDragEnterEvent *event)
{
m_isDrag = true;
m_filePath = event->mimeData()->urls()[0].toLocalFile();
m_fileName = event->mimeData()->urls()[0].fileName();
event->accept();
}
void MyListWidget::dragMoveEvent(QDragMoveEvent *event)
{
}
这里通过
m_filePath = event->mimeData()->urls()[0].toLocalFile();
m_fileName = event->mimeData()->urls()[0].fileName();
这种方式获取文件路径和文件名。