Modifier la largeur de trait d'un polygone PyQGIS

Aug 20 2020

J'essaie de régler la largeur des contours du lac à zéro ou de changer la couleur en bleu clair, car je ne veux pas voir le contour noir. Le fichier vectoriel est un polygone (MultiPolygon) nommé vlayer2 et j'ai essayé les commandes suivantes:

vlayer2.setStrokeWidth(0)
vlayer2.setStrokeColor([49,179,245])
vlayer2.setWidth(0)

Mais je reçois toujours le message: '' AttributeError: l'objet 'QgsVectorLayer' n'a pas d'attribut '....' ''

Réponses

1 BenW Aug 21 2020 at 00:21

Les méthodes que vous essayez d'utiliser appartiennent à la classe QgsSimpleMarkerSymbolLayer . Vous devez accéder à la couche de symboles du rendu de votre couche vectorielle avant de pouvoir appeler ces méthodes.

Ce qui suit devrait vous aider à définir la couleur du trait, en gardant à l'esprit que vous devez passer un QColorobjet à cette méthode:

vlayer2.renderer().symbol().symbolLayer(0).setStrokeColor(QColor(49, 179, 245))
vlayer2.triggerRepaint()

Vous pouvez également définir le style de trait sur «Sans plume». La définition de la largeur à 0 donnera toujours une largeur «délié».

vlayer2.renderer().symbol().symbolLayer(0).setStrokeStyle(Qt.PenStyle.NoPen)
vlayer2.triggerRepaint()

Je recommande vivement de consulter le livre de recettes du développeur PyQGIS qui contient de nombreux exemples utiles.