#1 Mon 11 December 2017 12:06
QGIS API: appliquer un réglage (preset)
Bonjour,
Dans un plugin, je cherche à appliquer un réglage
J'ai vu qu'il y avait la méthode
Code:
applyPresetCheckedLegendNodesToLayer(nomPreset, layerId)
qui s'applique à une classe
Code:
QgsVisibilityPresetCollection
cf : https://qgis.org/api/2.12/classQgsVisib … f4bbfa9444
obtenu par exemple depuis
Code:
QgsProject.instance().visibilityPresetCollection()
J'ai récupéré la couche (Commune) sur laquelle j'aimerais appliquer le preset preview, et donc appliqué le code suivant :
Code:
QgsProject.instance().visibilityPresetCollection().applyPresetCheckedLegendNodesToLayer('preview', layer.id())
Sans succès..
Peut-être qqch m'échappe-t-il ... Je serais preneur de vos lumières ...
Voici le code complet à exécuter, après avoir créé un réglage preview :
Code:
nomCouche = 'Communes' layer = QgsMapLayerRegistry.instance().mapLayersByName(nomCouche)[0] QgsProject.instance().visibilityPresetCollection().applyPresetCheckedLegendNodesToLayer('preview', layer.id())
geodata au cerema et petits billets en géomatique
Hors ligne
#2 Mon 11 December 2017 23:26
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS API: appliquer un réglage (preset)
Bonsoir Mathieu,
d'après la documentation
https://qgis.org/api/2.12/classQgsVisib … 7fa257e019
n'est pas dispo dans python. En conséquence, les réglages basés sur la visibilité d'une ou plusieurs règles d'une même couche ne pourront pas être chargés. (réglage basé sur une analyse catégorisé ou ensemble de règle avec quelques item de décoché par exemple)
En revanche, si ton réglage n'est basé que sur la visibilité de groupe ou de couche, tu trouveras ton bonheur ici :
https://gist.github.com/SzieberthAdam/7 … 782f6e6c52
Bonne soirée,
Dernière modification par lejedi76 (Mon 11 December 2017 23:28)
Hors ligne
#4 Fri 15 December 2017 10:42
Re: QGIS API: appliquer un réglage (preset)
Pas de réponse non plus sur la liste qgis-developer.
Du coup, ça va faire un peu bricolage, mais je vais charger un QML pour les styles avec
Code:
loadNamedStyle
et rendre visible/invisibles les couches avec
Code:
setVisible
(plan B) :-)
geodata au cerema et petits billets en géomatique
Hors ligne
#5 Fri 15 December 2017 17:34
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS API: appliquer un réglage (preset)
Code:
loadNamedStyleet rendre visible/invisibles les couches avec
Code:
setVisible
Oui, j'aurais fait la même chose ^^
Hors ligne