一、实现拖拽功能只需要两步
(1)构造函数中
this->setAcceptDrops(true);
(2)重写dragEnterEvent、dropEvent事件
void Package::dragEnterEvent(QDragEnterEvent *event)
{
event->acceptProposedAction();
}
void Package::dropEvent(QDropEvent *event)
{
//QMimeData:记录数据的容器,可以获取到放下文件的路径名
QString pathName = event->mimeData()->urls().first().toString();
}
二、项目在Qt 5.12.0 高版本中时,需要额外添加dragMoveEvent事件,否则拖拽操作会失效
// 升级到 Qt 5.12版本,需要添加dragMoveEvent
void Package::dragMoveEvent(QDragMoveEvent *event)
{
event->acceptProposedAction();
}