我正在使用C ++ / Qt在OSX上构建应用程序。该应用程序正在设法将文件从应用程序传输到查找程序。我使用拖放。
该应用正在显示来自Android设备的文件。我可以毫无问题地将文件从Finder复制到Android设备。
但我无法让它从Android设备到finder。我有触发的DragLeaveEvent,但我仍然不了解如何捕获目的地的数据。
当离开应用程序时,鼠标在桌面上我应该能够git光标所在的路径开始使用源(我已经得到它)和目标的副本。
当从Finder拖动到应用程序时,我使用mimeData.urls获取源代码,并且在从应用程序拖动到查找程序时我应该使用相同的但是它不受支持或者网址是空的
void TreeView::dragLeaveEvent(QDragLeaveEvent* event)
{
qDebug() << "On Drag Leave Event";
QList<QTreeWidgetItem *> item;
item = this->selectedItems();
if (item.empty())
return;
else {
QStringList ListOfFiles;
QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
QStringList pathList;
QList<QUrl> urlList = mimeData->urls();
for (int i = 0; i < urlList.size() && i < 32; ++i)
{
pathList.append(urlList.at(i).toLocalFile());
qDebug() << urlList.at(i).toLocalFile();
}
for (int i=0; i<item.count();i++) {
ListOfFiles.append(item[i]->text(0));
qDebug() << item[i]->text(0);
}
}
event->accept();
QTreeWidget::dragLeaveEvent(event);
}
有什么想法吗? 感谢