Si lo entendí bien, la respuesta es sí, QGIS admite nombres de capa dinámicos.
Debería escribir una macro de Python para que se ejecute cada vez que se abra el proyecto. Este sería el flujo de trabajo:
Vaya QGIS->Project->Project Properties
y reemplace openProject()
con el siguiente código de Python:
def openProject():
import re, qgis
iface = qgis.utils.iface
layers = iface.mapCanvas().layers()
for lyr in layers:
# Get date from layer
it=lyr.getFeatures()
feat = next(it)
idx = lyr.fieldNameIndex('traffic_da')
currDate = feat.attributes()[idx]
# Set new layer name
name = lyr.name()
if re.search(' on \d{2,2}.\d{2,2}.\d{4,4}$', name):
name = name[:-14]
name = name + " on " + currDate
lyr.setLayerName( name )
Nota 1: Lo probé en archivos de forma, por lo que el campo del que tomo las fechas se traffic_da
debe a que los archivos de forma no admiten más letras en los nombres de campo. Ajuste eso en el código para trabajar en sus capas.
Nota 2: Dependiendo de la configuración de su proyecto, debe agregar un código de validación para actuar solo en las capas que desee. Por ejemplo, si ejecuta el código en capas ráster, los errores aparecerán con seguridad. Si necesita ayuda con esto, abra una nueva pregunta, puedo ayudarlo.
Asegúrese de habilitar macros en su proyecto, de esta manera: Settings->Options->General->Enable macros: Always
Cargue sus capas al proyecto.
Guarda tu proyecto.
Cada vez que abra su proyecto desde este punto, los nombres de sus capas serán dinámicos, la fecha se tomará del campo traffic_date
en la tabla de atributos de cada capa.
Después de la primera vez que abrí el proyecto, así es como se generaron dinámicamente los nombres de mis capas:
Creo que esto puede ayudarte a comenzar. Dime si te enfrentas a problemas no obvios.