À 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 .
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.
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.
Il y a la méthode QgsLegendInterface.addGroup (nom, développer, parent)
Exemple:
la source