我在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);
}
}
使用它,我一次只能插入一个文件。有没有人可以帮我解决这个问题?你的帮助将非常感激。
谢谢, 与Ashish。
答案 0 :(得分: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);
}
}