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


