Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 11 December 2017 12:06

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

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: 722

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

 

#3 Thu 14 December 2017 15:46

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS API: appliquer un réglage (preset)

Merci, lejedi76, mais mon réglage utilise aussi des styles..

Merci pour la réponse en tout cas !


geodata au cerema et petits billets en géomatique

Hors ligne

 

#4 Fri 15 December 2017 10:42

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

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: 722

Re: QGIS API: appliquer un réglage (preset)

MathieuR a écrit:

Code:

loadNamedStyle

et rendre visible/invisibles les couches avec

Code:

setVisible


Oui, j'aurais fait la même chose ^^

Hors ligne

 

Pied de page des forums

Powered by FluxBB