7

I'm trying to demonstrate to my company that we can begin using QGIS in conjunction with (and sometimes even instead of) ArcGIS and MapInfo. I've started setting up some layout templates but have run into a. In Print Composer, is there a way to add the current project path? In ArcGIS, the dynamic text is:

<dyn type="document" property="path"/>

I'd prefer not to have to copy/paste the document path every time I make a map.


EDIT:

To address answer and comments by artwork21 and Nathan W:

I'm using QGIS 2.0.1. I would also like this path to appear to anyone who may need to open the project for editing without modifying their startup.py file.

2
  • So you mean the current project path? And are you running QGIS 2.0?
    – Nathan W
    Dec 16, 2013 at 2:48
  • Yes and yes. Please see my edits.
    – Fezter
    Dec 16, 2013 at 4:16

3 Answers 3

5

As I investigated in this answer it seems anywhere you can use the Expression String Builder you can use the @project_folder variable in at least QGIS 2.16.

Other potentially useful variables can be found in the annotated screenshot below.

variables

4

I have not tried this, however it looks like you can create your own custom expression functions (python). This custom expression could be displayed within a composer label. A good how to for creating this would be to go through this blog:

Nathan's QGIS Blog - User defined expression functions for QGIS

Within your function you could use this statement to get your current project document path:

myProjectPath = QgsProject.instance().readPath("./")

A basic implementation that you can add to startup.py:

from qgis.core import QgsProject

@qgsfunction(0, "Python")
def projectpath(values, feature, parent):
    return QgsProject.instance.fileName()
5
  • Bingo. That was going to be my answer too.
    – Nathan W
    Dec 16, 2013 at 4:01
  • Updated your answer with a code example.
    – Nathan W
    Dec 16, 2013 at 4:05
  • +1 Nice answer, but I don't think this will work for me as others may need to edit a project. Please see the edits to my question.
    – Fezter
    Dec 16, 2013 at 4:16
  • 1
    There is no native way at the moment.
    – Nathan W
    Dec 16, 2013 at 4:20
  • That's what I was afraid of. Thanks anyway. I'll look into implementing this solution across the company.
    – Fezter
    Dec 16, 2013 at 4:27
3

Typing...

[% @project_path %]

...in a QGIS print composer text label will print the file path in the same way as the dynamic text expression does in ArcMap (using QGIS 2.14).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.