Qt 从 QTableWidget 拖放到文件夹
Posted
技术标签:
【中文标题】Qt 从 QTableWidget 拖放到文件夹【英文标题】:Qt Drag&Drop from QTableWidget to folder 【发布时间】: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);
【问题讨论】:
【参考方案1】:您需要致电QMimeData::setUrls( QList<QUrl> )
。
【讨论】:
以上是关于Qt 从 QTableWidget 拖放到文件夹的主要内容,如果未能解决你的问题,请参考以下文章