Answers:
对于python控制台:
QgsProject.instance().readPath("./") # also try "../"
或搭配
dir(QgsProject.instance())
你会发现类似
fileName()
对于python插件(未经测试!):
from PyQt4.QtGui import QMessageBox
from qgis.core import QgsProject
path_absolute = QgsProject.instance().readPath("./")
QMessageBox.information(None, "Title", "AP: " + unicode(path_absolute))
要访问矢量文件路径,请在活动层上的以下代码在Python控制台中运行良好:
>>>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()