Daha çox

PyQGIS istifadə edərək gizli sahələr daxil deyil, QGIS sahə adlarının siyahısı əldə edilir

PyQGIS istifadə edərək gizli sahələr daxil deyil, QGIS sahə adlarının siyahısı əldə edilir


Hal -hazırda, QGIS 2.8.3 üçün bir python eklentisi üçün, bu mövzuda qeyd edildiyi kimi pendingFields istifadə edən bir təbəqənin sahələrinin siyahısını alıram:

sahələr = self.layer.pendingFields ()

İndi bir neçə gizli sahəm var (təbəqə xüsusiyyətlərindəki sahələr nişanı vasitəsilə qurulur). Gizli olmayan sahələrin siyahısını necə əldə edə bilərəm?

Düzəliş Növü əldə etmək imkanını görürəm, amma buradan hara gedəcəyimi bilmirəm:

EditType {LineEdit, UniqueValues, UniqueValuesEditable, ValueMap, Classification, EditRange, SliderRange, CheckBox, FileName, Enumeration, Immutable, Hidden, TextEdit, Calendar, DialRange, ValueRelation, UuidGenerator, PhotoVebVidget, Color2,}

Vektor təbəqəsi obyekti a redaktorWidgetV2ByName bir sahə adından keçməyə və Edit Widget -in adını simli olaraq geri qaytarmağa imkan verən metod. Misal üçün:

>>> layer.editorWidgetV2ByName ("alan adı") 'Gizli'

Alternativ olaraq da varredaktorWidgetV2sahə indeksinə keçməyə imkan verən üsul:

>>> layer.editorWidgetV2 (0) 'Gizli'

Fərqli vidjetlər üçün adların siyahısını sənədlərlə birlikdə tapa bilərsiniz setEditorWidgetV2indeks verilən bir sahə üçün widgetı təyin etmək üçün istifadə edilə bilər:

>>> layer.setEditorWidgetV2 (0, "Gizli")

Gizli olmayan sahələrin siyahısını əldə etmək üçün aşağıdakı parçadan istifadə edə bilərsiniz:

sahələr = [layer.pendingFields sahəsindəki sahə () əgər layer.editorWidgetV2ByName (field.name ()! = "Gizli")]]

Videoya baxın: QGIS Python PyQGIS - Show Error, Warning, and Success Messages