5.3. Lesson: Formulieren

Wanneer u nieuwe gegevens toevoegt via digitaliseren, zult u geconfronteerd worden met een dialoogvenster dat u de attributen voor dat object laat invullen. Dit dialoogvenster is echter, als standaard, niet erg netjes om naar te kijken. Dat kan gebruiksproblemen veroorzaken, in het bijzonder als u zeer grote gegevenssets heeft om te maken, of als u wilt dat andere mensen u helpen digitaliseren en zij de standaard formulieren verwarrend vinden.

Gelukkig laat QGIS u uw eigen aangepaste dialoogvensters voor een laag maken. Deze les laat u zien hoe.

Het doel voor deze les: Een formulier voor een laag maken.

5.3.1. basic Follow Along: QGIS’ functionaliteit formulierontwerp gebruiken

  1. Selecteer de laag roads in het paneel Lagen

  2. Ga, zoals eerder, naar modus Bewerken

  3. Open de attributentabel van de laag roads

  4. Klik met rechts op een willekeurige cel in de tabel. Een kort menu zal verschijnen dat het item Formulier openen bevat.

  5. Klik er op om het formulier te zien dat QGIS maakt voor deze laag

Uiteraard zou het leuker zijn om dit te kunnen doen als we naar de kaart kijken, in plaats van altijd naar een specifieke straat te moeten zoeken in de Attributentabel.

  1. Selecteer de laag roads in het paneel Lagen

  2. Klik, met het gereedschap identify Objecten identificeren, op een straat in de kaart.

  3. Het paneel Identificatieresultaten opent en geeft een boomweergave van de waarden van de velden en andere algemene informatie over het aangeklikte object weer.

  4. Selecteer, aan de bovenzijde van het paneel, het keuzevak Automatisch formulier openen voor resultaten van enkele objecten in het menu options sup:Instellingen objecten identificeren.

  5. Klik nu opnieuw op een straat in de kaart. Naast het eerdere dialoogvenster Identificatieresultaten, zult u het nu bekende formulier zien:

    ../../../_images/roads_form.png
  6. Elke keer als u op een enkel object klikt met het gereedschap Objecten identificeren, komt het formulier naar voren zolang het keuzevak Auto openen formulier is geselecteerd.

5.3.2. basic Try Yourself Het formulier gebruiken om waarden te bewerken

Als u in de modus Bewerken bent kunt u dit formulier gebruiken om de waarden van de attributen van het object te bewerken.

  1. Activeer de modus Bewerken (als die al niet actief is).

  2. Klik, met het gereedschap identify Objecten identificeren, op de hoofdweg die door Swellendam loopt:

    ../../../_images/main_street_selected.png
  3. Bewerk zijn waarde highway naar secondary.

  4. Schakel de modus Bewerken uit en sla uw wijzigingen op

  5. Open de Attributentabel en merk op dat de waarde is bijgewerkt in de attributentabel en daarom ook in de brongegevens

5.3.3. moderate Follow Along: Typen velden voor formulieren instellen

Het is aardig om dingen met behulp van een formulier te bewerken, maar u moet nog steeds alles met de hand invoeren. Gelukkig hebben formulieren verschillende soorten zogenoemde widgets die u in staat stellen gegevens op diverse verschillende manieren te bewerken.

  1. Open de Eigenschappen… van de laag roads

  2. Schakel naar de tab Velden. U zult dit zien:

    ../../../_images/fields_panel.png
  3. Schakel naar de tab Formulier attributen. U zult dit zien:

    ../../../_images/attributes_form.png
  4. Klik op de rij oneway en kies Keuzevak als Type Widget in de lijst met opties:

    ../../../_images/checkbox_selected.png
  5. Klik op OK

  6. Ga naar de modus Bewerken (als de laag roads al niet in de modus Bewerken staat)

  7. Klik op het gereedschap identify Objecten identificeren

  8. Klik op dezelfde hoofdweg die u eerder al koos

U zult nu zien dat het attribuut oneway een keuzevak ernaast heeft staan met de opties True (geselecteerd) of False (niet geselecteerd).

5.3.4. hard Try Yourself

Stel een meer toepasselijk formulierwidget in voor het veld highway.

Controleer uw resultaten

5.3.5. hard Try Yourself Testgegevens maken

U kunt ook uw eigen aangepaste formulier volledig vanaf de grond opbouwen.

  1. Maak een enkele puntlaag genaamd test-data met twee attributen:

    • naam (tekst)

    • leeftijd (tekst)

    ../../../_images/new_point_layer.png
  2. Leg enkele punten vast op uw nieuwe laag met behulp van de gereedschappen voor digitaliseren, zodat u enige gegevens heeft om mee te werken. U zou, elke keer dat u een nieuw punt vastlegt, moeten worden geconfronteerd met het standaardformulier voor QGIS voor gegenereerde attributen.

    Notitie

    U moet misschien Snappen uitschakelen als dat nog steeds is ingeschakeld vanuit eerdere taken.

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

5.3.6. hard Follow Along: Een nieuw formulier maken

Nu willen we ons eigen aangepaste formulier maken voor de fase van het vastleggen van de attribuut-gegevens. U moet QT Designer hebben geïnstalleerd om dit te kunnen doen (alleen nodig voor degene die de formulieren maakt).

  1. Start QT Designer.

  2. Maak, in het dialoogvenster dat verschijnt, een nieuw dialoogvenster:

    ../../../_images/qt_new_dialog.png
  3. Zoek naar de Widget Box langs de linkerzijde van uw scherm (standaard). Het bevat een item genaamd Line Edit.

  4. Klik en sleep dit item op uw formulier. Dit maakt een nieuw Line Edit in het formulier.

  5. Met het nieuwe element Line Edit geselecteerd, zult u zijn properties zien langs de rand van uw scherm (standaard aan de rechterzijde):

    ../../../_images/qt_line_edit.png
  6. Stel zijn naam in op Naam.

  7. Maak, met behulp van dezelfde benadering, een nieuw draaiveld en stel zijn naam in op Leeftijd.

  8. Voeg een Label toe met de tekst Nieuwe persoon toevoegen in een vet lettertype (kijk in de properties van het object om te zien hoe deze in te stellen). Als alternatief wilt u misschien de titel van het dialoogvenster zelf instellen (in plaats van het toevoegen van een label).

  9. Klik op een willekeurige plek in uw dialoogvenster.

  10. Zoek naar de knop Lay Out Vertically (standaard in een werkbalk langs de bovenzijde van het scherm). Dit maakt automatisch uw dialoogvenster op.

  11. Stel de maximumgrootte van het dialoogvenster (in zijn eigenschappen) in op 200 (breedte) bij 100 (hoogte).

  12. Sla uw nieuwe formulier op als exercise_data/forms/add_people.ui

  13. Als het opslaan is voltooid kunt u Qt Designer sluiten

5.3.7. hard Follow Along: Het formulier associëren met uw laag

  1. Ga terug naar QGIS

  2. Dubbelklik op de laag test-data in de legenda om toegang te krijgen tot de eigenschappen ervan.

  3. Klik op de tab Formulier attributen in het dialoogvenster Laageigenschappen

  4. In de keuzelijst Attribuut editor layout, selecteer Geef een UI-bestand op.

  5. Klik op de knop ellipsis en kies het bestand add_people.ui dat u zojuist heeft gemaakt:

    ../../../_images/provide_ui_file.png
  6. Klik op OK in het dialoogvenster Laageigenschappen

  7. Ga naar de modus Bewerken en leg een nieuw punt vast

  8. Wanneer u dat doet zult u worden geconfronteerd met uw aangepaste dialoogvenster (in plaats van het algemene dat QGIS gewoonlijk maakt).

  9. Als u klikt op een van uw punten met het gereedschap identify Objecten identificeren, kunt u nu het formulier oproepen door met rechts te klikken in het venster Identificatieresultaten en te kiezen Object-formulier bekijken uit het contextmenu.

  10. Als u in de modus Bewerken staat voor deze laag, zal dat contextmenu Formulier Object bewerken in plaats daarvan weergeven, en u kunt dan de attributen aanpassen in het nieuwe formulier zelfs na het initiële vastleggen.

5.3.8. In Conclusion

Met behulp van formulieren kunt u het leven voor uzelf eenvoudiger maken bij het bewerken of maken van gegevens. Door typen widgets te bewerken of een geheel nieuw formulier uit het niets te maken, kunt u de ervaring beheren van iemand die nieuwe gegevens voor die laag digitaliseert, daarbij het minimaliseren van misverstanden en onnodige fouten.

5.3.9. Further Reading

Als u het gevorderde gedeelte hierboven heeft voltooid en kennis hebt van Python, wilt u misschien dit blog-item bekijken over het maken van eigen aangepaste objectformulieren met Python-logica, wat geavanceerde functies mogelijk maakt inclusief validatie van gegevens, automatisch aanvullen, etc.

5.3.10. What’s Next?

Openen van een formulier bij het identificeren van een object is één van de standaard acties die QGIS kan uitvoeren. U kunt het echter ook opdragen aangepaste acties, die u definieert, direct uit te voeren. Dat is het onderwerp van de volgende les.