qt 如何拖拽软件中的文件到系统资源管理器

qt 如何拖拽软件中的文件到系统资源管理器。。。。。。。

在Qml中,我可以使用text / uri-list mime类型开始拖动,以便从我的应用程序启动复制操作到文件浏览器,例如,

 

Item {
            id: draggable
            anchors.fill: parent
            Drag.active: mouseArea.drag.active
            Drag.hotSpot.x: 0
            Drag.hotSpot.y: 0
            Drag.mimeData: { "text/uri-list": "file:///home/myname/Desktop/avatar.jpeg" }
            Drag.supportedActions: Qt.CopyAction
            Drag.dragType: Drag.Automatic
            Drag.onDragStarted: { }
            Drag.onDragFinished: {
                console.log("Time to copy")
            }
        } // Item
要么
 
Item {
            id: draggable
            anchors.fill: parent
            Drag.active: mouseArea.drag.active
            Drag.hotSpot.x: 0
            Drag.hotSpot.y: 0
            Drag.mimeData: { "text/uri-list": "https://farm1.staticflickr.com/713/21777111068_e3310cfb94_k.jpg" }
            Drag.supportedActions: Qt.CopyAction
            Drag.dragType: Drag.Automatic
            Drag.onDragStarted: { }
            Drag.onDragFinished: {
                console.log("Time to copy")
            }
        } // Item
 

(另见Qt Quick Examples – externaldraganddrop)

这适用于文件:http:URIs.

补充:添加"file:///"前缀可使用如下函数:QUrl::fromLocalFile(path)