Pages: 1
- Sujet précédent - QGIS/PYQGIS 3.40: deplacer couche dans l arbre a couches ? - Sujet suivant
#1 Hier 09:36
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 394
QGIS/PYQGIS 3.40: deplacer couche dans l arbre a couches ?
Bonjour,
Je suis en train de faire une fonction qui crée une couche mémoire
Cette couche mémoire vient s'insérer dans l'arbre de couche mais pas forcément à la position voulue (je la veux en 1ere position de l'arbre de couches)
J'ai trouvé dans le PyQgisDevelopperCookbook une façon de la déplacer, mais cela ne fonctionne que si mon arbre de couche ne possède pas de groupe.
Dans mon cas, j'ai des groupes, (voir doc joint)
Je clone bien le nœud de mon layer (clone)
Je le place bien au-dessus de tout (idx = 0)
Mais ensuite, je ne plus supprimer l'original (lay dans mon code) et si je passe non pas le noaud mais le layer, il me supprime le premier, donc celui que je viens de déplacer
Code:
# Cree un layer memoire
# Arg1 : style de géométrie (Polygon, Point, etc ...)
# Arg2 : nom du nouveau layer
# Res : id du Layer créé
def WBO_LAYER_CreerLayerMemoire(stygeom,nom):
root = QgsProject.instance().layerTreeRoot()
layer = QgsVectorLayer((stygeom + "?crs=epsg:3946"), nom, "memory")
QgsProject.instance().addMapLayer(layer, True)
node = QgsProject.instance().layerTreeRoot().findLayer(layer)
if node:
node.setItemVisibilityChecked(True)
lay = root.findLayer(layer)
clone = lay.clone()
root.insertChildNode(0, clone)
root.removeChildNode(lay)
#root.removeLayer(layer)
return(layer)Comment faire ?
Merci de votre aide et bonne journée, PYJ
Hors ligne
Pages: 1
- Sujet précédent - QGIS/PYQGIS 3.40: deplacer couche dans l arbre a couches ? - Sujet suivant

