Outdated version of the documentation. Find the latest one here.

6.3. Lesson: Formulieren

Wanneer u nieuwe gegevens toevoegt via digitaliseren, zult u geconfronteerd worden met een dialoogvenster dat in 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.

6.3.1. basic Follow Along: QGIS’ functionaliteit formulierontwerp gebruiken

  • Selecteer de laag roads in de Lagenlijst.

  • Ga, zoals eerder, naar modus Bewerken.

  • Open de Attributentabel.

  • Klik met rechts op een willekeurige cel in de tabel. Een kort menu zal verschijnen, met als enige item Formulier openen.

  • Klik er op om het formulier te zien dat QGIS genereert 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.

  • Ga naar het menu Extra ‣ Opties.

  • In het dialoogvenster dat verschijnt, selecteer de tab Kaartgereedschap.

  • Selecteer het keuzevak Objectformulier openen ...:

../../../_images/open_feature_form.png
  • Klik op Ok.

  • Selecteer de laag roads in de Lagenlijst.

  • Klik, met behulp van het gereedschap Objecten identificeren, op een straat in de kaart.

    mActionIdentify

In plaats van het normale dialoogvenster Identificeren, zult u in plaats daarvan het nu bekende formulier zien:

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

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

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

  • Klik, met behulp van het gereedschap Objecten identificeren, op de hoofdweg die door Swellendam loopt:

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

  • Sla uw bewerkingen op.

  • Verlaat de modus Bewerken.

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

Notitie

Als u de standaard gegevensset gebruikt, zult u merken dat er meer dan één weg op deze kaart staan die Voortrek Street heten.

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

  • Open de:guilabel:Laag-eigenschappen van de laag roads .

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

../../../_images/fields_panel.png
  • Klik op de knop Text edit op dezelfde rij als man_made en u zult een nieuw dialoogvenster zien.

  • Selecteer Check box uit de lijst met opties:

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

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

  • Klik op het gereedschap Objecten identificeren.

  • Klik op dezelfde hoofdweg die u eerder al koos.

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

6.3.4. hard Try Yourself

Stel een meer toepasselijk formulierwidget in voor het veld highway.

Controleer uw resultaten

6.3.5. hard Try Yourself Testgegevens maken

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

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

    • Naam (tekst)

    • Leeftijd (tekst)

../../../_images/new_point_layer.png
  • Leg een aantal 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

6.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 Qt4 Designer hebben geïnstalleerd om dit te kunnen doen,(alleen nodig voor degene die de formulieren maakt). Het zou moeten zijn verschaft als onderdeel van het cursusmateriaal, als u Windows gebruikt. U zou er misschien naar moeten zoeken als u een andere besturingssysteem gebruikt. In Ubuntu, doe het volgende in de terminal:

Notitie

Op het moment van schrijven was Qt5 de laatst beschikbare versie. Dit proces vereist echter specifiek Qt4 en is niet noodzakelijkerwijze compatibel met Qt5.

sudo apt-get install qt4-designer

... en het zou automatisch moeten installeren. Zoek het anders op in het Software Center.

  • Start Designer door zijn item in het Start Menu in Windows te openen (of elke andere manier die toepasselijk is voor uw OS).

  • Maak, in het dialoogvenster dat verschijnt, een nieuw dialoogvenster:

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

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

  • Met het nieuwe element Line edit geselecteerd, zult u zijn properties zien langs de rand van uw scherm (standaard aan de rechter zijde):

../../../_images/qt4_line_edit.png
  • Stel zijn naam in op Naam.

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

  • 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).

  • Klik op een willekeurige plek in uw dialoogvenster.

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

  • Stel de maximum grootte van het dialoogvenster (in zijn eigenschappen) in op 200 (breedte) bij 100 (hoogte).

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

  • Als het opslaan is voltooid kunt u het programma Qt4 Designer sluiten.

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

  • Ga terug naar QGIS.

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

  • Klik op de tab Velden in het dialoogvenster Laag-eigenschappen.

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

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

../../../_images/provide_ui_file.png
  • Klik op OK in het dialoogvenster Laag-eigenschappen.

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

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

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

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

6.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, u kunt de ervaring beheren van iemand die nieuwe gegevens voor die laag digitaliseert, daarbij het minimaliseren van misverstanden en onnodige fouten.

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

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