2 votos

¿Hay alguna forma de congelar los nombres de las capas en la TOC?

Me gustaría congelar los nombres de las capas en la TOC. Hay alguna manera de hacer esto a través de QGIS config o PyQGIS?

Estoy utilizando QGIS Wien.

4voto

Elliott Maynard Puntos 11

Puede conseguirlo (más o menos) modificando el modelo de árbol de capas de QGIS. Escribe el siguiente fragmento de código en una consola Python de QGIS:

treeview = iface.layerTreeView()
model = treeview.layerTreeModel()

model.setFlag(QgsLayerTreeModel.ShowLegend)
model.setFlag(QgsLayerTreeModel.ShowLegendAsTree)
model.setFlag(QgsLayerTreeModel.AllowNodeReorder)
model.setFlag(QgsLayerTreeModel.AllowNodeChangeVisibility)
model.setFlag(QgsLayerTreeModel.AllowLegendChangeState)
model.setFlag(QgsLayerTreeModel.AllowNodeRename, False)

Después de ejecutar el código, ya no es posible renombrar capas (y grupos) desde el árbol de capas, aunque puede hacerse a través del diálogo Propiedades o a través de PyQGIS.

Supongo que eso sería lo máximo que puedes conseguir.

2voto

Tom Gullen Puntos 30

Puedes referenciar/incrustar las capas desde un segundo archivo. (mediante la entrada de menú "Capa - Incrustar capas y grupos").

Las capas así incrustadas son de sólo lectura (por lo que no es posible cambiarles el nombre). Puede moverlas temporalmente, pero los cambios no se guardan.

2voto

Ruben Puntos 3288

Sassá, No soy un experto, pero esto es lo que yo haría :

En el arranque mantener un tabla de consulta que contiene el id de la capa y el nombre correspondiente que desea que no se modifique.

Entonces usaría la señal layerNameChanged con una línea de este tipo :

self.curLayer.layerNameChanged.connect(self.watchName)

u hazlo para cada capa de tu proyecto.

entonces en la ranura "watchName" u intentar un :

def watchName(self):
    self.curLayer.setLayerName('the_right_name_coming_from_your_lookup_table')

No escribí todo el código necesario para crear la tabla de búsqueda.

Espero que esto pueda ayudar ...

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