[Qgis-developer] Open a project file programmatically

Olivier Dalang olivier.dalang at gmail.com
Tue Mar 17 02:16:03 PDT 2015


Hi !

I'm trying to load a project file using python in a plugin, but am
encountering some problems.

I simply want to have exactly the same behavior as if the user was choosing
"open" from the project menu, and selecting one particular file.

The C++ QgisApp class has an void openProject(const QString &fileName)
method which I suspect to do what I want, but if I'm not mistaken, there's
no access to QgisApp through python.
The python QgisInterface class has no such method. It only has a reference
to the QAction triggering the open file dialog, but that's not helping.

So I'm using these lines :

        QgsProject.instance().clear()
        QgsProject.instance().setFileName('C:\mypath\myfile.qgs')
        QgsProject.instance().read()

It seems to work more or less.

But the behavior is not exactly the same :

- postgres layers for which I have a stored user/password in the browser
(not in the project file) are simply ignored (there's not even an
user/password prompt, nor the handle bad layers dialog).
- there's no save prompt if the current project was modified
- I seem to have some crashes every now and then

Is there a way to simply open a file using python given it's path ? Am I
just missing it ?

Thanks for your help !!

Olivier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20150317/85cc4164/attachment.html>


More information about the Qgis-developer mailing list