qt - फ़ाइल को एक्सप्लोरर से खींचें क्या मेरा आवेदन नकल कर सकता है?
drag-and-drop qml (1)
QML में मैं एक फ़ाइल एक्सप्लोरर में एक कॉपी कार्रवाई शुरू करने के लिए text/uri-list
माइम प्रकार का प्रयोग करके एक ड्रैग शुरू कर सकता हूं, उदाहरण के लिए
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
( क्यूटी त्वरित उदाहरण भी देखें - एक्सरेनाल्ड्रैगैंडड्रॉप )
यह ठीक दिए गए file:
काम करता है file:
और http:
URIs
हालांकि मेरा वास्तविक डेटा एक यूआरआई के रूप में उपलब्ध नहीं है लेकिन डेटाबेस में संग्रहीत है मैं जल्दी से अस्थायी रूप से स्टोर नहीं कर सकता क्योंकि यह सेकंड ले सकता है और उपयोगकर्ता को किसी ड्रैग को शुरू करने में देरी नहीं चाहिए
क्या ड्रॉप के बाद लक्ष्य यूआरआई प्राप्त करना संभव है और खुद को कॉपी कराना है? या केवल लक्ष्य नकल कर सकते हैं?
बाद के मामले में, क्या मुझे आंतरिक एचटीटीपी-सर्वर के माध्यम से अपना डाटा उपलब्ध कराना है? मुझे कैसे पता चलेगा कि लिनक्स, विंडोज और ओएस एक्स पर फाइल ब्राउज़रों द्वारा कौन से यूआरआई योजना का समर्थन है?
मैं कुछ का उपयोग करेगा:
Drag.mimeData: { "text/uri-list": "http://localhost:8080/datarepository?id=12345" }
और फिर मैं एक इन-एप्लीकेशन एचटीटीपी सर्वर पर अनुरोधित डाटा उपलब्ध कराएगा (तब वह आईडी को अपने डीबी से उदाहरण के लिए 12345
बराबर ऑब्जेक्ट आसानी से निकाल सकता है) ... (एक बार प्रतिलिपि ऑपरेशन शुरू हो गया है I लगता है कि यह शर्मनाक है यदि आपका उपयोगकर्ता कुछ सेकंड की प्रतीक्षा करता है, जबकि सिस्टम डीबी से ऑब्जेक्ट को निकालती है)।