Message posté par : SANTANNA
----------------------------------------
Bonjour,
Pas besoin de Python, juste un peu de HTML. Et surtout de la curiosité pour comprendre la
solution proposée et les fonctions utilisées.
Il faudra utiliser l'option "Autoriser le formatage HTML
(
https://docs.qgis.org/3.40/fr/docs/user_manual/style_library/label_settings…)
" des options d'étiquette et savoir que la balise color ne prend en valeur que le
nom de la couleur ou sous sa forme #RRGGBB (info dans le lien Qt dans la doc).
La complexité dans votre demande réside dans ce que la couleur va dépendre du texte
affiché. Il faut donc découper le texte en question afin de savoir quelle couleur
appliquer, et c'est là que les fonctions de liste
(
https://docs.qgis.org/3.40/fr/docs/user_manual/expressions/functions_list.h…)
sont d'une grande aide.
-----------------
Code :
array_to_string( -- dernière étape, on rebascule le tout en texte pour affichage
with_variable(
'monetiquetteenliste',
array(A, B, C, D), --on crée notre liste de données à afficher
array_foreach( -- et on va parcourir cette liste
@monetiquetteenliste,
with_variable(
'macouleur', -- et définir pour chaque valeur de cette liste, la couleur
correspondante
CASE
WHEN @element in ('1', '2','3') THEN 'grey'
WHEN @element in ('4', '5') THEN 'yellow'
WHEN @element in ('6', 7) THEN 'orange'
WHEN @element = '9' THEN 'blue'
ELSE 'black'
END,
format('<p style="color:%1">%2</p>', @macouleur,
@element ) -- et appliquer le formatage adéquat au texte pris
"individuellement", en mode paragraphe
)
)
), delimiter:='' -- nécessaire pour enlever la virgule de séparation par défaut
de la fonction
)
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=373033#p373033
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net