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.
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.
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.
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 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.