Projecten laden

Soms moet u een bestaand project uit een plug-in laden of (nog vaker) bij het ontwikkelen van een zelfstandige toepassing in Python voor QGIS (zie: Toepassingen in Python).

To load a project into the current QGIS aplication you need a QgsProject instance() object and call its read() method passing to it a QFileInfo object that contains the path from where the project will be loaded:

# 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'

Voor het geval u enige aanpassingen moet maken aan het project (bijvoorbeeld enige lagen toevoegen of verwijderen) en uw wijzigingen opslaan, kunt u de methode write() van uw instance voor het project aanroepen. De methode write() accepteert ook een optionele QFileInfo die u in staat stelt een pad te specificeren waar het project zal wordne opgeslagen:

# Save the project to the same
project.write()
# ... or to a new file
project.write(QFileInfo('/home/user/projects/my_new_qgis_project.qgs'))

Beide functies read() en write() geven een Booleaanse waarde terug die u kunt gebruiken om te controleren of de bewerking succesvol was.