Pages: 1
- Sujet précédent - QGIS & Plugin python: recherche syntaxe couleur étiquette - Sujet suivant
#1 Fri 27 May 2016 09:04
- Ferreira_Guillaume
- Participant occasionnel
- Date d'inscription: 19 Jan 2015
- Messages: 10
QGIS & Plugin python: recherche syntaxe couleur étiquette
Bonjour,
Je travaille actuellement sur un plugin Qgis et je n'arrive pas à trouver sur le web la syntaxe pour changer la couleur des étiquettes,
voici le code que j'ai pour l'instant:
Code:
#Première étiquette pl.setCustomProperty("labeling", "pal") # On active l'étiquette pl.setCustomProperty("labeling/enabled", True) #On choisit de faire apparaitre le numéro d'ilot pl.setCustomProperty("labeling/fieldName", "NUMERO_ILOT") #taille du texte pl.setCustomProperty("labeling/fontSize", "10") #Style du texte pl.setCustomProperty("labeling/fontFamily", "Arial") #On active le Tampon pl.setCustomProperty("labeling/bufferDraw", True) #Largeur du Tampon pl.setCustomProperty("labeling/bufferSize", "1") #Couleur du Tampon pl.setCustomProperty("labeling/bufferColor", "white") #Correspond à l'emplacement 1 pour Décalage par rapport au centroide pl.setCustomProperty("labeling/placement", "1") #On rajoute un décalage en x en unité e carte pl.setCustomProperty("labeling/xOffset", "20") #On rajoute un décalage en y en unité e carte pl.setCustomProperty("labeling/yOffset", "20") #Deuxième étiquette pl2.setCustomProperty("labeling", "pal") # On active l'étiquette pl2.setCustomProperty("labeling/enabled", True) #On choisit de faire apparaitre le numéro d'ilot pl2.setCustomProperty("labeling/fieldName", "NUMERO_ILOT") #taille du texte pl2.setCustomProperty("labeling/fontSize", "10") #Style du texte pl2.setCustomProperty("labeling/fontFamily", "Arial") #On active le Tampon pl2.setCustomProperty("labeling/bufferDraw", True) #Largeur du Tampon pl2.setCustomProperty("labeling/bufferSize", "1") #Couleur du Tampon pl2.setCustomProperty("labeling/bufferColor", "white")
j'ai essayé :
Code:
pl2.setCustomProperty("labeling/fontColor", QtGui.QColor.fromRgb(255,0,0,255))
Code:
pl2.setCustomProperty("labeling/color", "red")
Mais rien ne fonctionne, quelqu'un à-t-il une solution ?
Hors ligne
#2 Fri 27 May 2016 10:14
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS & Plugin python: recherche syntaxe couleur étiquette
Bonjour,
Plutôt que d'utiliser layer.setCustomProperty vous pouvez utiliser l'object QgsPalLayerSettings:
Code:
from qgis.utils import iface lay = iface.activeLayer() pl = QgsPalLayerSettings() pl.readFromLayer(lay)
Vous pouvez ensuite utiliser l'instruction print(dir(pl)) pour lister les propriétés et méthodes de l'objet QgsPalLayerSettings. Vous verrez qu'il existe un attribut textColor.
Code:
from PyQt4.QtGui import QColor red = QColor(255,0,0) pl.enabled = True pl.textColor = red pl.writeToLayer(lay)
Hors ligne
#3 Fri 27 May 2016 14:28
- Ferreira_Guillaume
- Participant occasionnel
- Date d'inscription: 19 Jan 2015
- Messages: 10
Re: QGIS & Plugin python: recherche syntaxe couleur étiquette
Merci beaucoup! Voici le code une fois rectifié :
Code:
palLayer = QgsPalLayerSettings() palLayer.readFromLayer(pl) #On crée une variable avec un code couleur rgb red = QtGui.QColor(255,0,0) #on active l'etiquette palLayer.enabled = True #On ajoute la couleur précédement initialisé palLayer.textColor = red #On choisit un champ palLayer.fieldName='NUMERO_ILOT' #On active le Tampon palLayer.bufferDraw = True #Largeur du Tampon palLayer.bufferSize = 1 #Correspond à l'emplacement 1 pour Décalage par rapport au centroide palLayer.placement = 1 #On rajoute un décalage en x en unité de carte palLayer.xOffset = 20 #On rajoute un décalage en y en unité de carte palLayer.yOffset = 20 #on enregistre la couche palLayer.writeToLayer(pl) #On rafraichit le canva iface.mapCanvas().refresh()
Hors ligne
Pages: 1
- Sujet précédent - QGIS & Plugin python: recherche syntaxe couleur étiquette - Sujet suivant