Hi Lars -

I hazard a guess, that you want to execute some action after a /project/ has finished loading.

You might have a look on how to execute macro's after open, save or close events for the project:

In the project properties, you can enable macro's and write some python code that will be stored in the project:

Example: (Open an attribute window with data from layer 'kommune" after the project has finished loading)

|#--- macro start --- from qgis.core import QgsProject from qgis.utils import iface def openProject(): layers = QgsProject.instance().mapLayersByName('kommune') layer = layers[0] iface.showAttributeTable(layer) def saveProject(): pass def closeProject(): pass||#--- macro end ---|

Den 21-08-2019 kl. 14:15 skrev Lars I. Nielsen, LIFA A/S:

Hi bold developers of QGIS.

I’ve recently begun digging into utilizing the event (signal) model of QGIS (3.4).

And I’ve encountered a number of frustrations, as the events don’t work the way they’re supposed to, at least according to the available documentation (https://qgis.org/pyqgis/master/core/index.html).

E.g., the event “layerLoaded” on the project instance with the description “/Emitted when a layer from a projects (sic) was read/”, which to me indicates, that the loading is done (due to the use of “loaded” and “was”).

But the event is emitted before the loading of the layer is done, and you are therefore unable to find the layer it concerns.

Another example is the event “metadataChanged” on a loaded layer, which again to me indicates a past/done action (due to the use of “changed”). But again, it’s emitted before the change actually takes place, and the changed metadata isn’t available.

If the two events are indeed preload events, their names should instead be something like “layerLoading” and “metadataChanging”, or even “layerPreLoad” and “metadataPreChange”.

Is there a guide somewhere to tell how the event system is envisioned, and which events are emitted pre-action and which are emitted post-action ?

Or must I (hopefully not) take a deep look into the QGIS source code itself for this kind of information ?

In general, pre-action events are of limited use, except when it comes to deletions and destructions. For loading and changing stuff, post-action events are almost always what you need.

Med venlig hilsen

Lars I. Nielsen, LIFA A/S
GIS-konsulent, FME Certified Professional
Geoinformatik
Beskrivelse: C:\Users\lin\AppData\Roaming\Microsoft\signatures\284x82-3741133837051347070

*T*

        

6313 6800

        

*@*

        

[email protected]

*D*

        

6313 6849

        

*W*

        

www.lifa.dk <http://www.lifa.dk>

*M*

        

2492 4866

        

*CVR*

        

20937289


Beskrivelse: C:\Users\lin\AppData\Roaming\Microsoft\signatures\21x21-3019966288736195652 <https://www.linkedin.com/company/lifa-a-s/>
Følg os på LinkedIn og læs de seneste nyheder fra LIFA A/S


_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

--
Med venlig hilsen / Kind regards

Bo Victor Thomsen

_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to