【问题标题】:Copying file(s) with drag and drop from Qt 5.2 application to file system通过拖放从 Qt 5.2 应用程序复制文件到文件系统
【发布时间】:2014-05-24 00:01:31
【问题描述】:

如何在 Qt 5.2 应用程序中生成文件拖放操作,该应用程序在文件系统(Windows、Mac 等)中执行复制(或移动)?更具体地说:生成具有 1+ 个文件路径的拖动,当拖放到系统上时将对这些文件执行复制/移动。

有没有我可以使用的标准 mime 类型 - 提供文件路径作为 mime 数据?

【问题讨论】:

    标签: drag-and-drop mime-types qt5 qt5.2


    【解决方案1】:

    QMimeData 具有添加 text/uri-list 的功能。

    要将文件拖放到系统上,请添加以 file:/// 开头的 QUrl,后跟您的路径。

    QList<QUrl> urls;
    
    list.append(QUrl("file:///path");
    
    QMimeData* mimeData = new QMimeData;
    
    mimeData->setUrls(list);
    

    【讨论】:

    • 您能否为您的回答提供一些细节或解释?
    • 通过dragEnterEvent 的参数列表提供的事件有一个成员函数mimeData()。使用它而不是创建一个新的 QMimeData 对象来连接任何相关的东西。
    • 一条快速的建议:您可能想使用QUrl::fromLocalFile(const QString &amp;localFile) 来创建您的QUrl 实例。它抽象出正确编码路径的复杂性。
    猜你喜欢
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多