Ajouter un groupe de couches à l'aide de PyQGIS? [fermé]

8

Comment puis-je créer un nouveau groupe dans le gestionnaire de couches en utilisant du code python?

malagueff
la source

Réponses:

17

Ajout de groupes au panneau Calques

À l'aide de la nouvelle arborescence de couches (introduite depuis QGIS v.2.4 et disponible pour QGIS v3.x), vous pouvez ajouter un groupe au QGIS ToC de cette façon:

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

Si vous souhaitez l'ajouter à une position particulière dans la TdC, utilisez:

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

Ajout de groupes dans d'autres groupes

Vous pouvez même créer des groupes imbriqués (un groupe dans un groupe):

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

Si vous devez d'abord trouver un groupe existant où placer votre nouveau groupe, utilisez ceci:

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

Vous pouvez en savoir plus sur la gestion de l'arborescence des calques ici et ici .

Germán Carrillo
la source
Je ne trouve pas d'explication sur ce que signifie la TdC?
JACado
1
Arborescence des couches, légende, ToC, ce sont des noms normalement utilisés dans les SIG lors de la référence à la liste des couches et des groupes dans un logiciel.
Germán Carrillo
4

Il y a la méthode QgsLegendInterface.addGroup (nom, développer, parent)

Exemple:

iface.legendInterface().addGroup( 'abc')
Matthias Kuhn
la source
Merci beaucoup, le problème était que je n'ai pas fait référence à l'interface et utilisé directement QgsLegendInterface.addGroup
malagueff
Existe-t-il un moyen de contrôler la position où vous insérez le menu? Le menu est inséré sous la forme que vous avez sélectionnée. Je dois le mettre au-dessus de toutes les couches. Merci.
malagueff
@malagueff, veuillez modifier votre question en fonction de votre commentaire.
artwork21