允许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
}
}
}