Suite

Activer et désactiver les règles de style


J'ai une couche vectorielle dans QGIS. J'ai ajouté un tas de règles pour cette couche. C'est leQDockWidgetpour la couche dans la fenêtre principale de QGIS.

Ainsi, chacun des interétatiques, divisés, secondaires est une règle différente ajoutée à l'aideQgsRuleBasedRendererV2.

Toutes les règles ont la case à cocher où je peux basculer manuellement la visibilité du calque. Existe-t-il un moyen de basculer cela en utilisant python?

J'ai essayé d'utiliser l'arborescence des calques

root = QgsProject.instance().layerTreeRoot() pour enfant dans root.children() : print type(child), child.layerName(), child.children()

maisenfant enfantsrenvoie une liste vide au lieu de ces règles.

Le type de réseau routier estqgis._core.QgsLayerTreeLayer.


C'est une propriété de la couche, pas de l'arborescence des couches.

Obtenir la couche et modifier les règles de son moteur de rendu

# Une liste des règles des calques rules = layer.rendererV2().rootRule().children() # Désactiver une règle (dans cet exemple la première règle [0]) rules[0].setCheckState(False) # Synchroniser le légende avec la symbologie iface.layerTreeView().refreshLayerSymbology(layer.id())

La réponse acceptée fonctionne dans QGIS 2.0.

Pour 3.0, vous devez appeler setActive sur la règle

règles = layer.render().rootRule().children() rules[0].setActive(False) iface.layerTreeView().refreshLayerSymbology(layer.id())


Voir la vidéo: LES MEILLEURS FILTRES u0026 SETTINGS sur WARZONE!! ma config en bonus (Octobre 2021).