Вообщем есть класс, унаследованный от QTableWidget и у него переопределены функции drag&drop.
void ArchiveQTableWidget::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls()) {
event->acceptProposedAction();
}
}
void ArchiveQTableWidget::dragMoveEvent(QDragMoveEvent *event)
{
event->acceptProposedAction();
}
void ArchiveQTableWidget::dragLeaveEvent(QDragLeaveEvent *event)
{
event->accept();
}
void ArchiveQTableWidget::dropEvent(QDropEvent *event)
{
foreach (const QUrl &url, event->mimeData()->urls()) {
QString fileName = url.toLocalFile();
qDebug() << "Dropped file:" << fileName;
}
}
void ArchiveQTableWidget::startDrag(Qt::DropActions supportedActions)
{
qDebug() << supportedActions;
QFileInfo fi("1");
QUrl url = QUrl::fromLocalFile(fi.absoluteFilePath());
qDebug() << fi.absoluteFilePath();
QMimeData *mimeData = new QMimeData;
mimeData->setData("application/octet-stream", QByteArray("raq"));
mimeData->setUrls(QList<QUrl>() << url);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->exec(Qt::MoveAction);
}
Перетаскивание файлов и папок на программу работает прекрасно, а вот обратно никак не получается перенести. Натолкните на правильный путь.