4
J'ai personnalisé QTableWidget, comment je peux faire glisser & Passer des index de table au dossier? J'ai la collection QList avec des fichiers d'archive.
Ce code fonctionne parfaitement pour déposer à l'applicationQt Drag & Drop de QTableWidget au dossier
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);
}