6.3. Lesson: Formulários

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.

6.3.1. basic Follow Along: Using QGIS’ Funcionalidad del Diseño de un Formulario

  • Selecciona la capa roads en la Lista de capas.

  • Entra Modo de edición como antes.

  • Abre su Tabla de atributos.

  • Haz clic derecho en una celda de la tabla. Un menú pequeño aparecerá, siendo la única entrada Abrir formulario.

  • Haz clic en ella para ver el formulario que QGIS genera para esa 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.

  • Ve al menú Configuración ‣ Opciones.

  • En el cuadro de diálogo que aparece, selecciona la pestaña Herramientas de mapa.

  • Comprueba la casilla de verificación Abrir formulario de objetos espaciales ...:

../../../_images/open_feature_form.png
  • Haz clic en Aceptar.

  • Selecciona la capa roads en la Lista de capas.

  • Utilizando la herramienta Identificar, haz clic en cualquier calle del mapa.

    mActionIdentify

En lugar de el cuadro de diálogo normal Identificación, verás el formulario ya familiar:

../../../_images/roads_form.png

6.3.2. basic 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).

  • Utilizando la herramienta Identificar, haz clic en la calle principal que discurre a través de Swellendam:

../../../_images/main_street_selected.png
  • Edita su valor highway a secondary.

  • Guarda tu edición.

  • Sal del modo edición.

  • Abre la Tabla de Atributos y verás que los valores se han acutalizado en la tabla de atributos y por lo tanto en la fuente de datos.

Nota

Si estás utilizando el conjunto de datos por defecto, encontrarás más de una calle en el mapa llamada Voortrek Street.

6.3.3. moderate 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 la Propiedades de la capa de la capa roads.

  • Cambia a la pestaña Campos. Verás esto:

../../../_images/fields_panel.png
  • Haz clic en el botón Edición de líneas en la misma fila que man_made y te dará un nuevo cuadro de diálogo.

  • Selecciona Casilla de verificación en la lista de opciones:

../../../_images/checkbox_selected.png
  • Haz clic en Aceptar.

  • Introduce el modo edición (si la capa roads no está ya en modo edición.

  • Haz clic en la herramienta Identificar.

  • Haz clic en la misma calle principal que escogiste antes.

Ahora verás que los atributos de man_made tiene una casilla de verificación junto a ella denotando True (marcado) or False (sin marcar).

6.3.4. hard Try Yourself

Ajusta un formulario más apropiado para el campo highway.

Comprueba tus resultados

6.3.5. hard Try Yourself Creacion de Datos para Test

También puedes diseñar tu formulario personalizado desde cero

  • Crea una capa de puntos simple llamada datos-test con dos atributos:

    • Nombre (texto)

    • Edad (texto)

../../../_images/new_point_layer.png
  • Captura unos pocos puntos en tu nueva capa utilizando las herramientas de digitalización para tener pocos datos con los que jugar. Debería presentarse un formulario QGIS de atributos capturados por defecto cada vez que capturas un punto nuevo.

Nota

Puede que necesites desactivar Autoensamblado si todavía está acitvada de pasos anteriores.

../../../_images/new_point_entry.png

6.3.6. hard Follow Along: Creando un Nuevo Formulario

Ahora queremos crear nuestro propio formulario personalizado para la fase de captura de datos de atributo. Para hacerlo, necesitas tener instalado Qt4 Designer (solo se necesita para crear los formularios). Debería ser proporcionado como parte de los materiales de tu curso, si estás utilizando Windows. Puede que necesites buscarlo si estás utilizando otro SO. En Ubuntu, haz lo siguiente en el terminal:

Nota

En momento de escribir estos materiales, Qt5 es la última versión disponible. Sin embargo, el proceso requiere específicamente Qt4 y no es necesariamente compatible con Qt5.

sudo consigue instalar qt4-designer

... y debería instalarse automáticamente. En caso contrario, búscalo en el Centro de Software.

  • Inicia Designer abriendo su entrada en Menú Inicio de Windows (o cualquier acceso que sea apropiado en tu SO).

  • En el cuadro de diálogo que aparece, crea un nuevo cuadro de diálogo:

../../../_images/qt4_new_dialog.png
  • 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):

../../../_images/qt4_line_edit.png
  • Ajusta su nombre a Name.

  • Utilizando el mismo acceso, crea una nueva spinbox y ajusta su nombre a Age.

  • Añade una Label con el texto Add a New Person con la fuente en negrita (busca en las propiedades del objeto para ajustarlo así). Como alternativa, puede que quieras ajustar el título del cuadro de diálogo (en lugar de añadir una etiqueta).

  • Haz clic en cualquier parte de tu cuadro de diálogo.

  • Encuentra el botón Lay Out Vertically (en la barra de herramientas en el borde superior de la pantalla, por defecto). Esto establece tu cuadro de diálogo automáticamente.

  • Ajusta el máximo tamaño de tu cuadro de diálogo (en sus propiedades) a 200 (width) por 100 (height).

  • Guarda tu nuevo formulario como exercise_data/forms/add_people.ui.

  • Cuando esté guardado, puedes cerrar el programa Qt4 Designer.

6.3.7. hard Follow Along: Asociando el Formulario con Tu Capa

  • Vuelve al QGIS.

  • Haz doble clic en la leyenda de la capa datos-test para acceder a sus propiedades.

  • Haz clic en la pestaña Campos del cuadro de diálogo Propiedades de la capa.

  • En el menú desplegable Disposición del editor de atributos, selecciona Proporcionar archivo UI.

  • Haz clic en el botón de puntos suspensivos y elige el archivo add_people.ui que acabas de crear:

../../../_images/provide_ui_file.png
  • Haz clic en Aceptar del cuadro de diálogo Propiedades de la 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 haces clic en uno de tus puntos utilizando la herramienta Identificar, puedes abrir el formulario con clic derecho en las ventanas de resultados de identificación y eligiendo el formulario Formulario de vista de objetos espaciales del menú contexto.

  • Si estás en modo edición para esa capa, ese menú contextual te mostrará Formulario de edición de objetos espaciales, y podrás ajustar los atributos en el nuevo formulario incluso después de la captura inicial.

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

6.3.9. Further Reading

Si completaste la sección avanzada anterior y tienes conocimientos de Python, puede que quieras comprobar esta entrada de blog sobre creación de formularios de personalización de elementos con lógica Python, que contiene funciones avanzadas incluyendo validación de datos, autocompletado, etc.

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