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

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

  1. Select the roads layer in the Layers panel

  2. Enter Edit Mode as before

  3. Open the roads layer’s attribute table

  4. Right-click on any cell in the table. A short menu will appear, that includes the Open form entry.

  5. Click on it to see the form that QGIS generates for this layer

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.

  1. Select the roads layer in the Layers panel

  2. Using the identify Identify Features tool, click on any street in the map.

  3. The Identify Results panel opens and shows a tree view of the fields values and other general information about the clicked feature.

  4. At the top of the panel, check the Auto open form for single feature results checkbox in the options sup:Identify Settings menu.

  5. Now, click again on any street in the map. Along the previous Identify Results dialog, you’ll see the now-familiar form:

    ../../../_images/roads_form.png
  6. Each time you click on a single feature with the Identify tool, its form pops up as long as the Auto open form is checked.

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

  1. Activa el modo edición (si no está ya activado).

  2. Using the identify Identify Features tool, click on the main street running through Swellendam:

    ../../../_images/main_street_selected.png
  3. Edit its highway value to be secondary

  4. Exit edit mode and save your edits

  5. Open the Attribute Table and note that the value has been updated in the attributes table and therefore in the source data

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

  1. Open the roads layer’s Properties…

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

    ../../../_images/fields_panel.png
  3. Switch to the Attributes Form tab. You’ll see this:

    ../../../_images/attributes_form.png
  4. Click on the oneway row and choose Checkbox as Widget Type in the list of options:

    ../../../_images/checkbox_selected.png
  5. Clique OK.

  6. Enter edit mode (if the roads layer is not already in edit mode)

  7. Click on the identify Identify Features tool

  8. Click on the same main road you chose earlier

You will now see that the oneway attribute has a checkbox next to it denoting True (checked) or False (unchecked).

5.3.4. hard Try Yourself

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

Comprueba tus resultados

5.3.5. hard Try Yourself Creacion de Datos para Test

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

  1. Create a simple point layer named test-data with two attributes:

    • name (text)

    • age (integer)

    ../../../_images/new_point_layer.png
  2. 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

5.3.6. hard Follow Along: Creando un Nuevo Formulario

Now we want to create our own custom form for the attribute data capture phase. To do this, you need to have QT Designer installed (only needed for the person who creates the forms).

  1. Start QT Designer.

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

    ../../../_images/qt_new_dialog.png
  3. Busca Widget Box a la izquierda de tu pantalla (por defecto). Contiene un elemento llamado Line Edit.

  4. Haz clic y arrastra el elemento hasta tu formulario. Esto creará un nuevo Line Edit en el formulario.

  5. 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/qt_line_edit.png
  6. Set its name to name.

  7. Using the same approach, create a new Spin Box and set its name to age.

  8. Add a Label with the text Add a New Person in a bold font (look in the object properties to find out how to set this). Alternatively, you may want to set the title of the dialog itself (rather than adding a label).

  9. Add a Label for your Line Edit and your Spin Box.

  10. Arrange the elements to your own desire.

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

  12. Find the Lay Out in a Form Layout button (in a toolbar along the top edge of the screen, by default). This lays out your dialog automatically.

  13. Set the dialog’s maximum size (in its properties) to 200 (width) by 150 (height).

  14. Your form should now look similar to this:

    ../../../_images/qt_example_form.png
  15. Save your new form as exercise_data/forms/add_people.ui

  16. When it’s done saving, you can close Qt Designer

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

  1. Go back to QGIS

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

  3. Click on the Attributes Form tab in the Layer Properties dialog

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

  5. Click the ellipsis button and choose the add_people.ui file you just created:

    ../../../_images/provide_ui_file.png
  6. Click OK on the Layer Properties dialog

  7. Enter edit mode and capture a new point

  8. Cuando lo hagas, se presentará un cuadro de diálogo personalizado (en lugar del genérico que el QGIS crea normalmente).

  9. If you click on one of your points using the identify Identify Features tool, you can now bring up the form by right clicking in the identify results window and choosing View Feature Form from the context menu.

  10. If you are in edit mode for this layer, that context menu will show Edit Feature Form instead, and you can then adjust the attributes in the new form even after initial capture.

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

If you completed the advanced section above and have knowledge of Python, you may want to check out this blog entry about creating custom feature forms with Python logic, which allows advanced functions including data validation, autocompletion, 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.