0

我在 MAC OSx 上使用 Qt4.7 工作。我想使用拖放事件在 QTreewidget 中插入文件。我想一次添加多个文件。我正在使用这个:

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);
    }
}

使用它,我一次只能插入一个文件。有没有人可以帮助我解决这个问题?您的帮助将不胜感激。

谢谢,阿希什。

4

1 回答 1

1

问题是您只创建了一个树视图项。但是,每个与 mime 数据一起传递的 Url 都需要一个:

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);
    }
}
于 2014-06-30T09:31:08.863 回答