Hinzufügen einer Ebenengruppe mit PyQGIS? [geschlossen]


8

Wie kann ich mit Python-Code eine neue Gruppe im Ebenenmanager erstellen?

Antworten:


17

Hinzufügen von Gruppen zum Ebenenbedienfeld

Mit dem neuen Ebenenbaum (seit QGIS v.2.4 eingeführt und für QGIS v3.x verfügbar) können Sie dem QGIS-Inhaltsverzeichnis auf folgende Weise eine Gruppe hinzufügen:

root = QgsProject.instance().layerTreeRoot()
myGroup1 = root.addGroup("My Group 1")

Wenn Sie es einer bestimmten Position im Inhaltsverzeichnis hinzufügen möchten, verwenden Sie:

myGroup1 = root.insertGroup(2, "My Group 1")

Hinzufügen von Gruppen zu anderen Gruppen

Sie können sogar verschachtelte Gruppen erstellen (eine Gruppe in eine Gruppe):

myGroupA = myGroup1.addGroup("My Group A")

Wenn Sie zuerst eine vorhandene Gruppe suchen müssen, in der Sie Ihre neue Gruppe ablegen möchten, verwenden Sie Folgendes:

myOriginalGroup = root.findGroup("My existing group") # We assume the group exists
myNewGroup = myOriginalGroup.addGroup("My New Group")

Weitere Informationen zum Umgang mit Ebenenbäumen finden Sie hier und hier .


Ich kann keine Erklärung dafür finden, was ToC bedeutet.
JACado

1
Ebenenbaum, Legende, ToC, dies sind Namen, die normalerweise in GIS verwendet werden, wenn auf die Liste der Ebenen und Gruppen in einer Software verwiesen wird.
Germán Carrillo

4

Es gibt die Methode QgsLegendInterface.addGroup (Name, Erweiterung, Eltern)

Beispiel:

iface.legendInterface().addGroup( 'abc')

Vielen Dank, das Problem war, dass ich nicht auf die Schnittstelle verwies und direkt QgsLegendInterface.addGroup
malagueff

Gibt es eine Möglichkeit, die Position zu steuern, an der Sie das Menü einfügen? Das Menü wird unter der von Ihnen ausgewählten Form eingefügt. Ich muss es über alle Schichten legen. Vielen Dank.
Malagueff

@malagueff, Bitte bearbeiten Sie Ihre Frage gemäß Ihrem Kommentar.
Artwork21
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.