1 votos

Cambiar atributos de capas en pyqgis

Estoy tratando de cambiar los atributos de una tabla en pyqgis. Sin embargo, al terminar los cambios, no puedo verlos en la capa.

Estoy usando QGIS 3.8.1

Aquí está la versión simple de mi código

layer.startEditing()
from qgis.PyQt.QtCore import QVariant
if caps & QgsVectorDataProvider.AddAttributes:
    attrs = { 28 : 60.5, 29 : 70.5} #Cambiar los valores en las 
                                    #columnas 28 y 29 a 60.5 y 70.5
    if caps & QgsVectorDataProvider.ChangeAttributeValues:
        layer.dataProvider().changeAttributeValues({ 0 : attrs}) 
        # cambiando los valores de la primera fila
    layer.updateFields()
layer.commitChanges()

1voto

Mue Puntos 2469

Podrías utilizar algo como lo siguiente para cambiar los valores de los campos especificados:

capa = iface.activeLayer()
capa.startEditing()
atributos = {28: 60.5, 29: 70.5}
elemento = capa.getFeature(0)
capa.dataProvider().changeAttributeValues({elemento.id(): atributos})
capa.commitChanges()

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X