gpt4 book ai didi

qt - 从 QDropEvent 检索所有文件路径

转载 作者:行者123 更新时间:2023-12-03 03:45:48 25 4
gpt4 key购买 nike

我在我的软件中实现了拖放。基本上我有一个包含文件路径的 QTableView。用户必须能够在 QTableView 中拖放文件才能添加它们。

我已经完成了大部分工作,但我仍停留在迭代 QDropEvent 对象中包含的所有路径上。我必须实现 dropEvent 方法。

void Generous::dropEvent(QDropEvent *dropEvent) {
QStringList filePathList;

// Way to iterate dropEvent and append each file path to filePathList.

addFilesToListView(filePathList);
}

我怎样才能做到这一点?

最佳答案

我猜测使用文件路径的拖放使用MIME类型text/uri-list

如果这是真的,您应该能够像这样检索数据:

if (dropEvent->mimeData()->hasUrls())
{
foreach (QUrl url, dropEvent->mimeData()->urls())
{
filePathList << url.toLocalFile();
}
}

无论如何,因为我不确定,最好是首先检查放置事件中存储了哪些类型的信息,然后查看在哪里以及如何提取文件路径:

QStringList availableMimeTypes = dropEvent->mimeData()->formats();
qDebug() << "available MIME types:" << dropEvent->mimeData()->formats() << "\n";

foreach(QString mimeType, availableMimeTypes)
{
qDebug() << "data for MIME type" << mimeType << " :";
qDebug() << dropEvent->mimeData()->data(mimeType) << "\n";
}

关于qt - 从 QDropEvent 检索所有文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com