0ices
2021-06-11 14:00
采纳率: 86.7%
浏览 51

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 小P聊技术 2021-06-11 14:03
    已采纳

    在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.

    1 打赏 评论
  • 0ices 2021-06-15 13:21
    补充:添加"file:///"前缀可使用如下函数:QUrl::fromLocalFile(path)
    打赏 评论

相关推荐 更多相似问题