12 votos

Establecer un valor predeterminado en un campo de QGIS

Me gustaría añadir una capa de campo de un valor predeterminado. Quiero decir, cada vez que una función se crea, que el campo se rellena automáticamente con el valor predeterminado.

En mi caso el valor por defecto sería el @project_filename variable (del proyecto nombre del archivo).

No puedo encontrar esta funcionalidad en cualquier lugar.

Saludos,

10voto

Mue Puntos 2469

Puede definir una función que se añade el proyecto de nombre de archivo como un atributo y conectar esta función con el evento que añade características. Usted puede utilizar el código siguiente, cambie el nombre del campo para cualquiera que sea tu elección (yo usé Name) y pegarlo en la Consola de Python. Ahora cada vez que se agrega una nueva característica, el campo se rellena con el actual nombre del proyecto:

import os

# Get project name
project = QgsProject.instance()
project_name = os.path.basename(project.fileName())

# Set active layer
layer = qgis.utils.iface.activeLayer()

# Define function to select added feature and add attribute to field "Name"
def update(featureAdded):
    idx = layer.fieldNameIndex('Name')
    layer.changeAttributeValue(featureAdded, idx, project_name)

# Connect "featureAdded" event to "select" function
layer.featureAdded.connect(update)

Result

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