Возникла вот необходимость перетаскавать из отображения в Explorer, но с ходу как-то не все стало получаться. Примеров выгуглить не получилось, и документация как-то тускло это освещает. Если у кого-нить есть какие-нить ссылочки по этому вопросу, поделитесь пожалуйста.
Судя по Qt-документации следующее должно работать:
void SBSFilesView::mousePressEvent(QMouseEvent *event)
{
QTableView::mousePressEvent(event);
if (event->button() == Qt::LeftButton)
dragStartPosition = event->pos();
}
void SBSFilesView::mouseMoveEvent(QMouseEvent *event)
{
if (!(event->buttons() & Qt::LeftButton))
return;
if ((event->pos() - dragStartPosition).manhattanLength()
< QApplication::startDragDistance())
return;
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl>() << QUrl::fromLocalFile("C:\text.txt"));
drag->setMimeData(mimeData);
Qt::DropAction dropAction = drag->exec(Qt::MoveAction);
}
Но, в итоге получаю сообщение об ошибке: Cannot move file: cannot read from the source file or disk.
C:\text.txt 100% существует.