将Qt QTableWidget中的内容拖放到文件夹

4
我有一个自定义的QTableWidget,如何使表格索引可以拖放到文件夹中?我有一个包含归档文件的QList集合。
这段代码可以很好地实现拖放到应用程序。
void ArchiveQTableWidget::keyPressEvent(QKeyEvent *event)
{
    if (event->key() == Qt::Key_Return && currentRow() > -1)
        enterClicked(currentIndex());
    QTableWidget::keyPressEvent(event);
}

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)
{
    StreamQMimeData mimeData = new StreamQMimeData;
    connect(mimeData, SIGNAL(dataRequested(QString)),
            this, SLOT(createData(QString)), Qt::DirectConnection);
    QDrag *drag = new QDrag(this);
    drag->setMimeData(mimeData);
    drag->exec(Qt::CopyAction);
}
1个回答

1
你需要调用 QMimeData::setUrls( QList<QUrl> )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接