您的位置:首页 > 编程语言 > Python开发

QGIS python开发手册-加载工程文件

2015-08-05 17:17 776 查看
4000

加载工程文件

在QGIS中加载工程文件需要使用QgsProject实例的read()方法,该方法需要传入QFileInfo对象。QFileInfo对象指定了QGIS工程文件的路径,下面的代码加载QGIS的工程文件到当前应用程序中:
# If you are not inside a QGIS console you first need to import
# qgis and PyQt4 classes you will use in this script as shown below:
from qgis.core import QgsProject
from PyQt4.QtCore import QFileInfo
# Get the project instance
project = QgsProject.instance()
# Print the current project file name (might be empty in case no projects have been loaded)
print project.fileName
u'/home/user/projects/my_qgis_project.qgs'
# Load another project
project.read(QFileInfo('/home/user/projects/my_other_qgis_project.qgs'))
print project.fileName
u'/home/user/projects/my_other_qgis_project.qgs'

在应用程序中,如果修改了工程文件,例如增加、删除图层,可以使用QgsProject实例的write()方法保存工程文件,write()方法可以传入QFileInfo对象,将工程文件另存到其他目录中。如下面代码:
# Save the project to the same
project.write()
# ... or to a new file
project.write(QFileInfo('/home/user/projects/my_new_qgis_project.qgs'))

read()和write()方法都会返回布尔类型的结果,用于判断读写是否成功。
需要注意的是,如果自定义程序是一个独立应用的话,为了能够同步的加载地图画布(canvas),需要首先实例化QgsLayerTreeMapCanvasBridge对象,代码如下:
bridge = QgsLayerTreeMapCanvasBridge( \
QgsProject.instance().layerTreeRoot(), canvas)
# Now you can safely load your project and see it in the canvas
project.read(QFileInfo('/home/user/projects/my_other_qgis_project.qgs'))


查看原文:http://www.giser.net/?p=1495
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: