Modifica larghezza tratto di un poligono PyQGIS

Aug 20 2020

Sto cercando di impostare la larghezza dei contorni del lago su zero o di cambiare il colore in azzurro, poiché non voglio vedere il contorno nero. Il file vettoriale è un Polygon (MultiPolygon) denominato vlayer2 e ho provato i seguenti comandi:

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

Ma ricevo sempre il messaggio: '' AttributeError: l'oggetto 'QgsVectorLayer' non ha attributo '....' ''

Risposte

1 BenW Aug 21 2020 at 00:21

I metodi che si sta tentando di utilizzare appartengono alla classe QgsSimpleMarkerSymbolLayer . Devi accedere al livello dei simboli del renderer del tuo livello vettoriale prima di poter chiamare questi metodi.

Quanto segue dovrebbe funzionare per impostare il colore del tratto, tenendo presente che è necessario passare un QColoroggetto a questo metodo:

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

In alternativa, puoi impostare lo stile del tratto su "Nessuna penna". L'impostazione della larghezza su 0 darà comunque una larghezza "attaccata ai capelli".

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

Consiglio vivamente di controllare il PyQGIS Developer Cookbook che contiene molti esempi utili.