允许Widget接受拖拽的数据

实现向widget中拖拽数据并获取数据的方法

1.首先要给widget设置接受拖拽的属性

2.安装事件过滤器,过滤拖拽事件

ui.widget->setAttribute(Qt::WA_AcceptDrops);

ui.widget->installEventFilter(this);

//事件过滤函数处理指针对拖拽的widget

bool TransferSubpageLocal2Phone::eventFilter( QObject* watched, QEvent* event)

{

if (watched == ui.widget)

{

switch (event->type())

{

case QEvent::DragEnter:

static_cast(event)->acceptProposedAction();

return true;

case QEvent::Drop:

dropEvent(static_cast(event));

return true;

}

}

return QWidget::eventFilter(watched, event);

}

//鼠标释放时处理接受解析数据

void TransferSubpageLocal2Phone::dropEvent(QDropEvent* event)

{

if (event->mimeData()->hasUrls())

{

QStringList files;

foreach(QUrl url, event->mimeData()->urls())

{

QString filePath = QDir::toNativeSeparators(url.toLocalFile());

files

}

}

}

经验分享 程序员 微信小程序 职场和发展