8 votos

Ocultación de las filas de atributos de datos en el panel de identificación de resultados

Tengo una capa GDB que he importado a mi proyecto QGIS 3.16.

Estoy utilizando la herramienta "Identificar características" para inspeccionar las rutas, y estoy tratando de utilizar el panel "Identificar resultados" para tomar nota rápidamente de ciertos valores de atributos de datos.

Por desgracia, esta base de datos tiene 130 filas de atributos de datos, lo que hace muy difícil encontrar los valores que necesito rápidamente.

¿Hay alguna manera de ocultar u ordenar las filas de atributos de datos que aparecen en el panel de resultados de identificación?

QGIS Identify Results Panel

Intenté abrir la tabla de atributos y pude ocultar las columnas allí. Mi tabla de atributos se ve muy bien y sólo muestra los datos que necesito. Sin embargo, el filtro "Mostrar características seleccionadas" no parece funcionar. Y aunque el filtro "Mostrar características visibles en el mapa" actualiza los resultados, no funciona para esta aplicación. En cualquier caso, preferiría personalizar la visualización del panel de resultados de identificación. Sólo menciono que he conseguido ocultar los datos en la tabla de atributos, pero no parece cambiar la apariencia del panel Identificar resultados.

6voto

Anton8000 Puntos 165

Una solución puede ser crear un "Capa virtual" a través de Layer > Add Layer > Add/Edit Virtual Layer... con las columnas que quieres mostrar, e identifica esta capa en su lugar:

Por ejemplo:

select kommunnamn, lanskod, geometry
from ok_ak_riks

enter image description here

2 votos

Muy bonito, ¿se actualizaría la capa virtual después de cada adición/edición a la capa principal?

2 votos

Sí, se actualizará automáticamente

2 votos

Una solución muy elegante.

4voto

Dror Bogin Puntos 118

A menos que me equivoque, no se puede hacer eso.
Sin embargo, puede personalizar los consejos del mapa en el menú de propiedades de la capa.
De este modo, podrá decidir qué campos mostrar y cómo, ya que puede utilizar código HTML.
Por ejemplo, con una simple expresión:

[% to_string("name") +'\n' + 'Population: '+to_string("pop_est")%]

enter image description here enter image description here

O añadiendo HTML para estilizar el resultado:

<h3 style="color:red;">[% to_string("name")%]</h3>
<b>Population: </b>[%to_string("pop_est")%]

enter image description here enter image description here

Sólo tienes que asegurarte de que activas las puntas de los mapas, y simplemente pasar el ratón por encima de la característica que quieres identificar.

enter image description here

1 votos

No tenía ni idea de que estos consejos de herramientas pudieran personalizarse, pero esta rápida solución me ha ayudado.

1voto

ARUNBALAN NV Puntos 101

Aquí hay una solución usando PyQGIS.

Supongamos que hay una capa de polígonos llamada "prueba con la siguiente tabla de atributos, véase la imagen siguiente.

input

Este es el resultado actual después de utilizar el "Identificar características" herramienta ( Ctrl + Shift + I ).

identify_1

Proceda con Plugins > Python Console > Show Editor y pegar el script a continuación

layer = QgsProject.instance().mapLayersByName("test")[0]
type = 'Hidden'
config = {'Layer':layer.id()}
not_required_fields = ["pop06", "pop618", "pop1835", "pop3565", "pop6599"]

indexs = [layer.fields().indexOf(field) for field in not_required_fields]

for index in indexs:
    field = layer.fields()[index]
    widget_setup = QgsEditorWidgetSetup(type, config)
    layer.setEditorWidgetSetup(index, widget_setup)

enter image description here

Pulse Run script run script y obtener la salida final (de nuevo después de usar el "Identificar características" herramienta):

output_1

Para excluir estos campos de la tabla de atributos utilice este fragmento de código:

layer = QgsProject.instance().mapLayersByName("test")[0]
not_required_fields = ["pop06", "pop618", "pop1835", "pop3565", "pop6599"]

config = layer.attributeTableConfig()

columns = config.columns()

for column in columns:
    if column.name in not_required_fields:
        column.hidden = not False

config.setColumns(columns)
layer.setAttributeTableConfig(config)

Así, la tabla de atributos tendrá ahora el siguiente aspecto

output_2


Referencias:

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