具体实现步骤
首先是目标窗口
目标窗口TargetWidget需要接受拖动事件,在构造函数中设置
this->setAcceptDrops(true);//支持拖动操作
实现拖动进入和放下两个函数
void SliceBrowseWindow::dragEnterEvent(QDragEnterEvent *event)
{
//这句话让该窗口可以捕捉到dropEvent事件
event->acceptProposedAction();
QWidget::dragEnterEvent(event);
}
void SliceBrowseWindow::dropEvent(QDropEvent * event)
{
//拖动完成:业务代码,一般是修改目标窗口内容,刷新目标窗口,也就是当前窗口
auto source = event->source();
auto fromWindow = ***::Instance()->GetMovingSeriesWindow();
***::Instance()->SetMovingSeriesWindow(nullptr);
auto fileList = SeriesMgr::Instance()->GetSeries(fromWindow->GetSeriesI