【问题标题】:Qt Drag&Drop from QTableWidget to folderQt 从 QTableWidget 拖放到文件夹
【发布时间】:2018-02-17 16:50:51
【问题描述】:

我有自定义 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);
}

【问题讨论】:

    标签: c++ qt drag-and-drop qt5


    【解决方案1】:

    您需要致电QMimeData::setUrls( QList&lt;QUrl&gt; )

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      • 2022-12-20
      • 2012-05-03
      • 1970-01-01
      • 2011-02-13
      相关资源
      最近更新 更多