
Un formulario consta de un conjunto de campos de datos solicitados por un software, que se almacenan para su posterior uso y procesamiento. Cada uno de esos campos almacena un dato específico.
Una herramienta que nos proporciona QGIS, y que quizá mucha gente desconoce, es la posibilidad de incorporar formularios personalizados para la entrada de datos, encargándose de ajustar todos los campos y guardar los nuevos valores en la capa.

Estos formularios que consume QGIS podemos crearlos con QT Designer.
En el presente post vamos a mostrarte cómo crear un formulario con la herramienta QT Designer y cómo asociarlos a una capa en QGIS a través de sus propiedades.
Qué es QT Designer
QT Designer es un programa que permite desarrollar interfaces gráficas de usuario (GUI). Permitiéndonos componer y personalizar las ventanas o cuadros de diálogo para su empleo en QGIS (por ejemplo).

Qt se encuentra disponible para sistemas tipo unix (Linux, BSDs, Unix), Para Apple Mac OS X y Windows.
Qt cuenta en la actualidad con un sistema de triple licencia: GPL v2/v3 para el desarrollo de software de código abierto y software libre, la licencia QPL para el desarrollo de aplicaciones comerciales, y la licencia LGPL gratuita.
Creación de un formulario personalizado con Qt Designer
Para crear un formulario personalizado es necesario tener instalado en tu pc Qt Designer (con el instalador propio de QGIS se instala de forma automática). Para acceder a esta herramienta, basta con que en el buscador de Windows digitalizases Qt Designer….
Todas las propiedades establecidas en Qt Designer se pueden cambiar de forma dinámica dentro del código.

Una vez que Qt Designer haya arrancado selecciona Dialog with Buttons Bottom (Diálogo con botones inferiores) y haz clic en Crear.

Aparecerá en pantalla una ventana titulada Dialog – untitled, formulario básico y por defecto que comenzaremos a configurar y dar forma a continuación.
El aspecto de la interfaz será similar a la siguiente:

Podemos crear, por ejemplo, un formulario para inventariar y recoger información sobre los árboles en el interior de un municipio.
Podríamos incluir los siguientes campos:
- Id: donde almacenaremos un id único para cada árbol
- Tipo: donde se indicará el tipo de árbol del que se trate
- Poda: si se ha realizado la poda o no del árbol
- Coord_X: coordenada X de la ubicación del árbol
- Coord_Y: coordenada Y de la ubicación del árbol
Para ello, en primer lugar, debemos insertar en el formulario las labels (Display Widgets).

Hacemos clic sostenido sobre ellas y las arrastramos a la posición deseada dentro del formulario.
Incluye, a continuación, los Line Edit al formulario que serán aquellos que permitirán introducir los datos para los campos.

Puedes incluir un Check Box para marcar una acción como finalizada o pendiente, como puede ser la poda, y un Combo Box para establecer subtipos que definan el tipo de elemento registrado.

Si quieres aprender a crear subtipos en QGIS, visita nuestra entrada Cómo trabajar con subtipos en QGIS.
Puedes modificar la propiedad objetctName tanto de los Line Edit como de los Combo Box y/o Check Box con su respectivo nombre.

Por otro lado, en la propiedad QLabel, en el apartado Text, puedes modificar el texto de las etiquetas creadas.

El resultado es un formulario similar al siguiente:

Recuerda guardar el formulario una vez hayas finalizado de configurarlo.
Vinculando el formulario a una capa en QGIS
Una vez tenemos nuestro formulario listo, debemos de crear una capa en QGIS que tenga los mismos campos que hemos definido en el formulario. También es importante que tengamos el tipo de datos que se van a introducir (cadena de texto, número, fecha, etc…).
Accede a las propiedades de la capa y, en la pestaña Formulario de atributos, en el desplegable de la parte superior selecciona Proporcionar archivo ui.

En la ventana aparecerá una nueva sección denominada Editar UI, haz clic en el buscador y selecciona el formulario creado anteriormente.

En la pestaña Formulario de atributos, puedes establecer reglas para la introducción de datos para cada campo en la sección Controles disponibles.. Por ejemplo, que en el campo id solo acepte un valor que esté en un rango determinado min/max, establecer el mapa de valores para el campo Tipo, o introducir la respuesta de marcado para la casilla de verificación del campo Poda…

Haz clic en Aceptar en el diálogo de propiedades de la capa.
Para comenzar a introducir datos en nuestra capa, debes iniciar ahora una sesión de edición y digitalizar una geometría para comprobar que aparece el formulario creado.
Los valores introducidos se guardarán en la tabla de atributos de nuestra capa.

Asociar formulario a archivo de estilos
Si queremos que el formulario sea permanente con su configuración, podemos guardar la misma como un archivo de estilos de capas de QGIS, en formato .qml, para poder emplearlo en cualquier momento, o directamente en la base de datos GeoPackage. Lo más recomendado es la segunda opción.

Sincronizar proyecto con QField
El siguiente paso, es guardar el proyecto de QGIS y sincronizarlo con QField mediante el plugin QField Sync, como mostramos en nuestra entrada QField Sync: plugin para sincronizar proyectos de QGIS con QField.
Una vez tenemos nuestro proyecto cargado en QField, iniciamos el modo edición sobre la capa con nuestro formulario, y podemos comenzar a digitalizar geometrías y añadir su información asociada a través de los campos del formulario creado.

Tutor de los cursos de QGIS, QGIS avanzado, QGIS aplicado a Urbanismo y Catastro, PostGIS, Teledetección con QGIS y Google Earth Engine, PostGIS y ArcGIS. Licenciado en Geografía y Master en SIG y Ordenación del Territorio. Echa un vistazo a todos nuestros cursos de SIG online.
Buenos días César,
Qt Designer nos ofrece muchas más opciones de personalización de formularios que no directamente desde la app o desde el propio QGIS, no existe esa variedad de, por ejemplo, ComboBox, SpinBox, configuración de botones, contenedores, organización y distribución de los elementos en el layout del formulario, etc…
Es decir, estamos hablando de una configuración y personalización de formularios de forma avanzada.
Saludos!
Buenas Diego,
Gracias por la entrada en el blog que con el tiempo son un recurso inestimable al que recurrimos para solucionar dudas.
Respecto a esta entrada, no me queda claro cuáles son las ventajas de hacer esto o simplemente crear una capa que editamos posteriormente en Qfield. Una capa editable en Qfield tiene un aspecto similar a lo que muestras en la última captura de pantalla.
Un saludo