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.
Índice
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 un formulario sencillo que nos solicite los siguientes campos:
- ID
- NOMBRE
- EDAD
Para ello inserta en el formulario tres labels (Display Widgets).
Para ello haz clic sostenido sobre ellas y arrástralos a la posición deseada dentro del formulario.
Incluye ahora dos Line Edit al formulario que serán aquellas que contengan los datos para los campos ID y NOMBRE.
Incluye, por último, un Spin Box.
Puedes modificar la propiedad objetctName tanto de los Line Edit como SpinBox 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 EDAD solo acepte un valor que esté en un rango determinado min/max, que el campo NOMBRE no pueda ser nulo, etc…
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.
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.
Hola Diego: tengo una duda sobre el formulario. Si creamos un campo que sea combo box, y le metemos varias opciones, al vincularlo a QGIS en el formulario se ven dichas opciones, pero no las graba en la tabla. Solo he podido grabar cuando dichas opciones se introducen desde propiedades capa>formularios>mapa de valores y de ahí introducir a mano o importando un csv. Hay alguna opción para que esto se pueda hacer desde QT designer?
Ni te molestes. Por lo que he estado viendo todos lo hacen con los csv
Hola: este tipo de formulario puede ser utilizado para ArcGis..? gracias
Hola Jordan,
No, no es válido para ArcGIS…
Un saludo!
Hola Guilherme,
Para poder introducir un botón de impresión en un formulario, deberías de programarlo con Python.
Un ejemplo de este tipo de uso puedes verlo en: https://mappinggis.com/2015/09/feed-back-como-introducir-valores-a-traves-de-pyqgis/
Un saludo!
Como faço para imprimir as informação do formulário? O até mesmo incluir um botão de impressão?