Hinzufügen einer Ebenengruppe mit PyQGIS? [geschlossen]

8

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

malagueff
quelle

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 .

Germán Carrillo
quelle
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')
Matthias Kuhn
quelle
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