加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Qt从QTableWidget拖放到文件夹

发布时间:2020-12-16 07:21:56 所属栏目:百科 来源:网络整理
导读:我有自定义QTableWidget,我怎样才能将Drag Drop从表索引转移到文件夹?我有QList集合和归档文件. 此代码非常适合应用程序 void ArchiveQTableWidget::keyPressEvent(QKeyEvent *event){ if (event-key() == Qt::Key_Return currentRow() -1) enterClicked(cu
我有自定义QTableWidget,我怎样才能将Drag& Drop从表索引转移到文件夹?我有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);
}

解决方法

您需要调用QMimeData :: setUrls(QList< QUrl>).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读