Multiple file insert in QTreewidget using Drag and Drop events
我在 MAC OSx 上使用 Qt4.7。我想使用拖放事件在 QTreewidget 中插入文件。我想一次添加多个文件。我正在使用这个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | void MainWindow::dragEnterEvent(QDragEnterEvent * e) { if(e->mimeData()->hasUrls()) { e->acceptProposedAction(); } } void MainWindow::dropEvent(QDropEvent * e) { QTreeWidgetItem *Items = new QTreeWidgetItem(ui->treeWidget); foreach(const QUrl &url,e->mimeData()->urls()) { const QString &filename = url.toLocalFile(); qDebug() <<"Dropped file:" << filename; Items->setText(0,filename); } } |
使用它,我一次只能插入一个文件。有没有人可以帮助我解决这个问题?您的帮助将不胜感激。
谢谢,
阿什。
问题是您只创建了一个树视图项。但是,您使用 mime 数据传递的每个 Url 都需要一个:
1 2 3 4 5 6 7 8 9 | void MainWindow::dropEvent(QDropEvent *e) { foreach(const QUrl &url, e->mimeData()->urls()) { QString filename = url.toLocalFile(); qDebug() <<"Dropped file:" << filename; QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget); item->setText(0, filename); } } |