Gaunamas QGIS laukų pavadinimų sąrašas, neįtraukiant paslėptų laukų naudojant „PyQGIS“

We are searching data for your request:
Upon completion, a link will appear to access the found materials.
Šiuo metu, naudojant „python“ papildinį, skirtą QGIS 2.8.3, aš gaunu sluoksnio laukų sąrašą, naudojant pendingFields, kaip minėta šioje temoje:
laukai = self.layer.pendingFields ()
Dabar turiu kelis paslėptus laukus (nustatytus per sluoksnių ypatybių laukų skirtuką). Kaip gauti neslėptų laukų sąrašą?
Matau galimybę gauti redagavimo tipą, bet nežinau, kur kreiptis:
EditType {LineEdit, UniqueValues, UniqueValuesEditable, ValueMap, Classification, EditRange, SliderRange, CheckBox, FileName, Enumeration, Immutable, Hidden, TextEdit, Calendar, DialRange, ValueRelation, UuidGenerator, Photo, WebViewV, Color2, EditorWW
Vektorinio sluoksnio objektas turi editorWidgetV2ByName
metodas, leidžiantis įvesti lauko pavadinimą ir atgauti redagavimo valdiklio pavadinimą kaip eilutę. Pavyzdžiui:
>>> layer.editorWidgetV2ByName ("lauko pavadinimas") 'Paslėptas'
Pakaitomis yraeditorWidgetV2
metodas, leidžiantis įvesti lauko indeksą:
>>> layer.editorWidgetV2 (0) „Paslėptas“
Įvairių valdiklių pavadinimų sąrašą galima rasti kartu su dokumentacija setEditorWidgetV2
, kuris, beje, gali būti naudojamas valdikliui nustatyti lauke, atsižvelgiant į indeksą, taip:
>>> layer.setEditorWidgetV2 (0, "Paslėptas")
Taigi, norėdami gauti neslėptų laukų sąrašą, galite naudoti šį fragmentą:
laukai = [lauko laukas sluoksnyje.pendingFields (), jei layer.editorWidgetV2ByName (laukas.pavadinimas ()! = "Paslėptas")]