5.3. Lesson: Formularios
Cuando añades nuevos datos digitalizando, se te presenta un cuadro de diálogo que te permite rellenar los atributos del elemento. Sin embargo, el cuadro de diálogo no es muy bonito a la vista. Esto puede causar algún problema, especialmente si tienes que crear conjuntos de datos extensos, o si quieres que otra gente te ayude a digitalizar y encuentran los formularios por defecto confusas.
Afortunadámente, QGIS te permite crear tus propios cuadros de diálogo para una capa. Esta lección te enseñará cómo.
El objetivo de esta lección: Crear un formulario para una capa.
5.3.1. Follow Along: Usando QGIS” Funcionalidad del Diseño de un Formulario
Selecciona la capa
roads
en el panel CapasEntra en Modo Edición como antes
Abre la tabla de atribtuos de la capa
roads
Click-Derecho en cualquier celda de la tabla. Un pequeño menú aparecerá, que incluye la entrada :guilabel:Àbrir formulario`
Click en él para ver el formulario que QGIS genera para esta capa
Obviamente sería bonito poder hacerlo mientras miras el mapa, en lugar de buscar una calle específica en la Tabla de Atributos cada vez.
Selecciona la capa roads en el panel de Capas
Usando la herramienta Identificar objetos espaciales, click enn` cualquier calle del mapa.
El panel Resultados de la Identificación se abre y muestra una vista de árbol` con los valores de los campos y otra información general sobre el objeto espacial clickado.
En la parte superior del panel, marque la casilla Auto abrir formulario para resultados de objeto espacial único en el menú Ajustes de Identificar.
Ahora, de nuevo haga click en calles en el mapa. A lo largo del diálogo Resultados de la Identificación, verá la forma ahora familiar:
Cada vez que haces click en un objeto independiente con la herramienta Identify, su formulario emerge mientras esté marcada Auto open form
5.3.2. Try Yourself Utilizando el Formulario para Editar Valores
Si estás en modo edición, puedes utilizar el formulario para editar los atributos de los elementos.
Activa el modo edición (si no está ya activado).
Usando la herramienta Identificar objetos espaciales, click en la calle principal que recorre Swellendam:
Edita su valor highway para que sea
secondary
Sal del modo edición y guarda tus cambios
Abre la Tabla de Atributos y nota que el valor se ha actualizado en la tabla de atributos y por lo tanto en los datos fuente
5.3.3. Follow Along: Ajustando los Tipos de Campos del Formulario
Es bonito editar cosas utilizando un formulario, pero todavía tienes que introducirlo todo a mano. Afortunadamente, los formularios tienen diferentes tipos de los llamados widgets que te permiten editar datos de varias formas diferentes.
Abre las Propiedades… de la capa roads
Cambia a la pestaña Campos. Verás esto:
Cambie a la pestaña Formulario de Atributos. Verás esto:
Click en la fila
oneway
y escoge Casilla de verificación como Tipo de Control en la lista de opciones:Haga click en Aceptar.
Entra al modo edición (si la capa
roads
no está todavía en modo edición)Click en la misma carretera principal que eligió antes
Ahora verá que el atributo :guilabel:òneway` tiene una casilla de verificaión a su lado indicando True
(marcado) o False
(desmarcado).
5.3.4. Try Yourself
Ajusta un formulario más apropiado para el campo highway.
Respuesta
Para el TYPE, obviamente hay una cantidad limitada de tipos que puede tener una carretera, y si revisas la tabla de atributos para esta capa, verás que están predefinidos.
Establezca el widget en Value Map y haga clic en Load Data from Layer.
Seleccione roads en el desplegable Label y highway para las opciones Value y Description:
Haga clic en OK tres veces.
Si usa la herramienta Identify en una calle mientras el modo de edición está activo, el cuadro de diálogo que obtendrá debería verse así:
5.3.5. Try Yourself Creacion de Datos para Test
También puedes diseñar tu formulario personalizado desde cero
Crea una capa de puntos simple llamada
test-data
con dos atributos:name (text)
edad (entero)
Añada unos pocos puntos en tu nueva capa utilizando las herramientas de digitalización para tener unos pocos datos con los que jugar. Debería presentarse un formulario QGIS de atributos capturados por defecto cada vez que añadas un punto nuevo.
Nota
Puede que necesites desactivar Autoensamblado si todavía está acitvada de pasos anteriores.
5.3.6. Follow Along: Creando un Nuevo Formulario
Ahora queremos crear nuestro propio formulario personalizado para la fase de captura de datos de atributos. Para hacer esto, debe tener QT Designer instalado (solo es necesario para la persona que crea los formularios).
Inicia QT Designer
En el cuadro de diálogo que aparece, crea un nuevo cuadro de diálogo:
Busca Widget Box a la izquierda de tu pantalla (por defecto). Contiene un elemento llamado Line Edit.
Haz clic y arrastra el elemento hasta tu formulario. Esto creará un nuevo Line Edit en el formulario.
Con el nuevo elemento de edición de línea seleccionado, verás sus propiedades en un lado de tu pantalla (en el lado derecho por defecto):
Establezca su nombre a
name
.Usando el mismo enfoque, crea un nuevo Spin Box y establece su nombre como
age
.Agregue una Etiqueta con el texto
Añadir una nueva Persona
en negrita (busque en las propiedades del objeto para saber cómo configurar esto). Alternativamente, es posible que desee establecer el título del cuadro de diálogo en sí (en lugar de agregar una etiqueta).Agrega una Etiqueta para tu Edición lineal y tu Spin Box.
Ordena los elementos como desees.
Haz clic en cualquier parte de tu cuadro de diálogo.
Encuentra el botón Diseño en un diseño de formulario (en una barra de herramientas a lo largo del borde superior de la ventana, por defecto). Esto presenta su cuadro de diálogo automáticamente.
Ajuste el tamaño máximo del diálogo (en sus propiedades) a
200
(ancho) por150
(alto).Tu formulario ahora debería ser similar a este:
Guarde su nuevo formulario como
exercise_data/forms/add_people.ui
Cuando esté grabado, puede cerrar Qt Designer
5.3.7. Follow Along: Asociando el Formulario con Tu Capa
Regresa a QGIS
Haz doble click en la leyenda de la capa test-data para acceder a sus propiedades.
Haga clic en la pestaña Formulario de Atributos de Propiedades de capa
En el menú desplegable Disposición del editor de atributos, selecciona Proporcionar archivo UI.
Click en el botón elipse y escoge el archivo
add_people.ui
que acaba de crear:Click en Aceptar en el diálogo Propiedades de Capa
Entra en el modo edición y captura un nuevo punto
Cuando lo hagas, se presentará un cuadro de diálogo personalizado (en lugar del genérico que el QGIS crea normalmente).
Si hace click en uno de sus puntos con la herramienta Identificar Objetos Espaciales, ahora puede abrir el formulario haciendo click derecho en la ventana de resultados de identificación y eligiendo :menuselection:` Ver formulario de Objetos Espaciales` en el menú contextual.
Si está en modo de edición para esta capa, ese menú contextual mostrará
en su lugar, y luego puede ajustar los atributos en el nuevo formulario incluso después de la captura inicial.
5.3.8. In Conclusion
Utilizando formularios, puedes facilitarte la vida cuando creas o editas datos. Editando tipos de widgets o creando nuevos desde cero, puedes controlar la experiencia de alguien que digitalice nuevos datos para esa capa, además minimizas malentendidos y errores innecesarios.
5.3.9. Further Reading
Si completó la sección avanzada anterior y tiene conocimiento de Python, puede consultar esta entrada del blog sobre la creación de formularios de objetos personalizados con lógica de Python, que permite funciones avanzadas que incluyen validación de datos, autocompletado, etc.
5.3.10. What’s Next?
Abrir un formulario de identificación de un elemento es una de las acciones estándar que QGIS puede realizar. Sin embargo, puedes dirigirlo a realizar acciones de personalización que tú definas. Este es el tema de la siguiente lección.