[FOSSGIS-Talk] qlr Layerdateien mit einem Standalone Python Skript in ein geöffnetes qgs Projekt laden

Riedel, Anja Riedel.Anja at eglv.de
Do Aug 1 15:04:32 CEST 2019


Hallo zusammen,



hat jemand schon mal Layerdateien (.qlr) über ein Standalone Python Skript

in ein geöffnetes QGis Projekt geladen ?



Die Idee ist, verschiedene Themen zu verlinken,  die sich der Anwender

In sein geöffnetes QGIS-Projekt hereinladen kann (z.B. per Klick) .


import os, sys, glob
# Append QGIS Python library to python search path
sys.path.extend(['C:/PROGRA~1/QGIS 3.4/apps/qgis/./python',.......
# Append location of DLLs to current system PATH envrionment variable
os.environ['PATH'] += r";C:\Program Files\QGIS 3.4\apps\qgis\bin;C:\Program Files\QGIS 3.4\apps\qgis\python"
from qgis.core import QgsProject
from osgeo import ogr
from qgis.core import QgsApplication, QgsProject, QgsVectorLayer, QgsLayerDefinition
from PyQt5.QtCore import QFileInfo
import qgis.core
try:
    import builtins
except ImportError:
    import __builtin__ as builtins

# Get the project instance // Console
project = QgsProject.instance()
# Load the project // Projekt laden in dem der Layer eingefügt werden soll
project.read('C:/temp/testQ.qgs')
# print (project.fileName())
#Get the reference of the layer tree. //Leere Gruppe wird angelegt
root = QgsProject.instance().layerTreeRoot()
group = root.addGroup('adressen')
# // Hinzufügen der qlr- Datei
QgsLayerDefinition().loadLayerDefinition('N:/Themen/QGIS/qlr_Vorlagen/adressen.qlr', QgsProject.instance(), group)
# Save the project to the same
project.write()

Diese Skript läßt sich standalone ausführen, in der Projekinstanz wird eine leere Gruppe adressen angelegt, die  .qlr -Datei wird jedoch nicht mit hinzugeladen.
Wenn ich das Skript über die Konsole ausführe, wird die .qlr in die Gruppe adressen geladen.
Hat jemand eine Idee was hier noch fehlen könnte?

Danke und Grüße
Anja

riedel.anja at eglv.de<mailto:riedel.anja at eglv.de>



Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste