सवाल यूनिटी डैश से आवेदन यूआरआई के सही प्रबंधन


किसी बिंदु पर, यूनिटी ने यूरी प्रकार को बदल दिया जब यह एक ऐप में यूनिटी डैश से एक जीटीके विंडो में अनुप्रयोगों के ड्रैग-एन-ड्रॉप ऑपरेशन हुआ था। 13.04 (एकता 7.0) में, डेटा कॉल को वापस पूर्ण पथ के साथ एक टेक्स्ट / यूरी-सूची प्राप्त हुई, उदा। फ़ाइल: //usr/share/applications/APP.desktop

हालांकि, यह इस तरह एक परीक्षण / यूरी-सूची है: आवेदन: //APP.desktop

मुझे APP.desktop के लिए पूरा रास्ता देने के लिए मैं इसे कैसे प्राप्त करूं? या क्या मैं ऐपइन्फो ऑब्जेक्ट प्राप्त करने के लिए यूरी का उपयोग कर सकता हूं?


4
2018-04-21 01:27


मूल




जवाब:


उसे देख रहा हूँ प्रलेखन, आप AppInfoManager ऑब्जेक्ट के get_path का उपयोग करने में सक्षम होना चाहिए

पाइथन दुभाषिया में निम्नलिखित चल रहा है:

>>> gi.repository आयात एकता से
>>> ए = एकता। AppInfoManager.get_instance ()
>>> a.get_path ("gedit.desktop")
'/usr/share/applications/gedit.desktop'

जैसा कि आप देख सकते हैं, बस डेस्कटॉप फ़ाइल-नाम पास करने से डेस्कटॉप फ़ाइल नाम पर पूर्ण-पथ लौटाता है।

इस प्रकार, आपके ड्रैग-ड्रॉप ऐप से - सुनिश्चित करें कि आप यूरी लक्ष्य जोड़ें:

widget.drag_dest_add_uri_targets()

drag_data_get विधि से कनेक्ट करें

connect("drag-data-get", self.on_drag_data_get)

def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
    print (data.get_uris())

से बाहर विभाजित करें application://app.desktop (string.split(str, 1)[1]) और उसमें फ़ीड करें appinfomanager.get_path() तरीका


4
2018-05-11 23:04