Usando a nova árvore de camadas (introduzida desde o QGIS v.2.4 e disponível para o QGIS v3.x), você pode adicionar um grupo ao QGIS ToC desta maneira:
root =QgsProject.instance().layerTreeRoot()
myGroup1 = root.addGroup("My Group 1")
Se você deseja adicioná-lo a uma posição específica no sumário, use:
myGroup1 = root.insertGroup(2,"My Group 1")
Adicionando grupos a outros grupos
Você pode até criar grupos aninhados (um grupo em um grupo):
myGroupA = myGroup1.addGroup("My Group A")
Se você precisar primeiro encontrar um grupo existente para colocar seu novo grupo, use o seguinte:
myOriginalGroup = root.findGroup("My existing group")# We assume the group exists
myNewGroup = myOriginalGroup.addGroup("My New Group")
Você pode aprender mais sobre o manejo da árvore de camadas aqui e aqui .
Muito obrigado, o problema era que eu não me referi à interface e usado diretamente QgsLegendInterface.addGroup
malagueff
Existe alguma maneira de controlar a posição em que você insere o menu? O menu é inserido na forma que você selecionou. Eu preciso colocá-lo acima de todas as camadas. Obrigado.
21813 Malagueff
@ Malagueff, edite sua pergunta de acordo com seu comentário.
Existe o método QgsLegendInterface.addGroup (nome, expansão, pai)
Exemplo:
fonte