जवाबों:
अजगर सांत्वना के लिए:
QgsProject.instance().readPath("./") # also try "../"
या के साथ
dir(QgsProject.instance())
आप कुछ ऐसा पाते हैं
fileName()
अजगर प्लगइन के लिए (परीक्षण नहीं!):
from PyQt4.QtGui import QMessageBox
from qgis.core import QgsProject
path_absolute = QgsProject.instance().readPath("./")
QMessageBox.information(None, "Title", "AP: " + unicode(path_absolute))
सक्रिय स्तर पर एक वेक्टर फ़ाइल पथ तक पहुंचने के लिए, यह कोड पायथन कंसोल में अच्छी तरह से काम करता है:
>>>import os
>>>myfilepath= iface.activeLayer().dataProvider().dataSourceUri()
>>>myfilepath
u'/home/zeito/tiznados_canoa.tif'
>>>(myDirectory,nameFile) = os.path.split(myfilepath)
>>>myDirectory
u'/home/zeito'
>>>nameFile
u'tiznados_canoa.tif'
यह एक सक्रिय परत के रूप में मेरे 'tiznados_canoa.tif' रेखापुंज के साथ परीक्षण किया गया था।
यदि आप एक सक्रिय स्तर पर एक वेक्टर फ़ाइल पथ का उपयोग करना चाहते हैं, तो यह काम करने लगता है:
myfilepath= os.path.dirname( unicode( qgis.utils.iface.activeLayer().dataProvider().dataSourceUri() ) ) ;
fic = myfilepath + "[% "FILE" %]"
तब mylayer के रूप में एक ही निर्देशिका में स्थित चित्र या पाठ खोलने के लिए:
from PyQt4 import QtWebKit, QtCore ; vue=QtWebKit.QWebView() vue.setUrl( QtCore.QUrl( fic ) ) ; vue.show()