Qt 从QDropEvent检索所有文件路径
我在我的软件中实现了拖放。基本上我有一个包含文件路径的QTableView。用户必须能够在QTableView中拖放文件才能添加它们 我已经完成了大部分工作,但是我一直在迭代qdropent对象中包含的所有路径。我必须实现Qt 从QDropEvent检索所有文件路径,qt,Qt,我在我的软件中实现了拖放。基本上我有一个包含文件路径的QTableView。用户必须能够在QTableView中拖放文件才能添加它们 我已经完成了大部分工作,但是我一直在迭代qdropent对象中包含的所有路径。我必须实现dropEvent方法 void Generous::dropEvent(QDropEvent *dropEvent) { QStringList filePathList; // Way to iterate dropEvent and append eac
dropEvent
方法
void Generous::dropEvent(QDropEvent *dropEvent) {
QStringList filePathList;
// Way to iterate dropEvent and append each file path to filePathList.
addFilesToListView(filePathList);
}
我该怎么做呢?我猜使用文件路径的拖放操作会使用MIME类型
text/uri列表
如果这是真的,您应该能够像这样检索数据:
if (dropEvent->mimeData()->hasUrls())
{
foreach (QUrl url, dropEvent->mimeData()->urls())
{
filePathList << url.toLocalFile();
}
}
if(dropEvent->mimeData()->hasURL())
{
foreach(QUrl url,dropEvent->mimeData()->url())
{
filePathList mimeData()->formats();
qDebug()formats()您还可以创建一个全局列表,该列表将在每个dropevent上不断追加文件路径。因此,最后您将拥有一个完整的路径列表
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";
}