[Qgis-developer] Field visibility in Python

Tom Chadwin tom.chadwin at nnpa.org.uk
Mon Jun 23 06:39:51 PDT 2014


Hi Matthias

Many thanks for this. It's not working for me quite yet:

AttributeError: 'QgsVectorLayer' object has no attribute 'editorWidgetV2ByName'

Python version:
2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]

QGIS version:
2.2.0-Valmiera Valmiera, c3a2817

Any ideas?

Tom


> -----Original Message-----
> From: Matthias Kuhn [mailto:matthias.kuhn at gmx.ch]
> Sent: 23 June 2014 13:55
> To: Tom Chadwin; qgis-developer at lists.osgeo.org
> Subject: Re: [Qgis-developer] Field visibility in Python
>
> Hi Tom,
>
> The following example should should print the type for all widgets.
> editorWidgetV2ByName( fieldName ) will return "Hidden" for all hidden
> fields, so for checking simply use string comparison.
> editorWidgetV2Config can then be used to access further configuration
> options for the editor widgets (where applicable, "Hidden" has no config
> options)
>
> canvas = qgis.utils.iface.mapCanvas()
> allLayers = canvas.layers()
> for i in allLayers:
>         fields = i.pendingFields()
>         field_names = [field.name() for field in fields]
>         for field in field_names:
>                 print i.editorWidgetV2ByName( field )
>
>
> I hope that answers part of your question.
>
> Best,
> Matthias
>
> On 23.06.2014 14:00, Tom Chadwin wrote:
> > Apologies for cross-post from qgis-user - I thought -developer only dealt
> with QGIS core, rather than also with plugin development.
> >
> > How do I determine in Python whether each field is hidden? I can't get
> editType() to work (and know it is deprecated). Does anyone have an
> example of this using editorWidgetV2Config()? I'm not getting it right:
> >
> > canvas = qgis.utils.iface.mapCanvas()
> > allLayers = canvas.layers()
> > for i in allLayers:
> >         fields = i.pendingFields()
> >         field_names = [field.name() for field in fields]
> >         for field in field_names:
> >                 print(i.editorWidgetV2Config(fields.indexFromName(str(field))))
> >
> > This just gives me lots of {}, suggesting perhaps that I am not setting the
> field index for editorWidgetV2Config() correctly.
> fields.indexFromName(str(field)) works as the *attribute* index for
> attributeDisplayName(), but the docs say
> attributeDisplayName(attributeIndex), while they say
> editorWidgetV2Config(fieldIdx). What's the difference between
> attributeIndex and fieldIdx?
> >
> > Thanks
> >
> > Tom
> >
> >
> > Tom Chadwin, UK National Parks Portal Manager
> > Telephone: 01434 611511 Mob: 07881 109617
> > Web:
> www.northumberlandnationalpark.org.uk<http://www.northumberlandnati
> onalpark.org.uk/>
> >
> > IMPORTANT NOTICE - Disclaimer - This communication is from
> Northumberland National Park Authority (NNPA).The Authority’s head office
> and principal place of business is Eastburn, South Park, Hexham,
> Northumberland, NE46 1BS, United Kingdom. If you are not the intended
> recipient(s) please note that any form of disclosure, distribution, copying or
> use of this communication or the information in it or in any attachments is
> strictly prohibited and may be unlawful. If you have received this
> communication in error, please delete the email and destroy any copies of it.
> Any views or opinions presented are solely those of the author and do not
> necessarily represent those of NNPA.Contractors or potential contractors are
> reminded that a formal Order or Contract is needed for NNPA to be bound
> by any offer or acceptance of terms for the supply of goods or services
> Although this email and any attachments are believed to be free of any virus
> or other defects which might affect any computer or IT system into which
> they are received, no responsibility is accepted by the NNPA for any loss or
> damage arising in any way from the receipt or use thereof. Computer
> systems of this Authority may be monitored and communications carried out
> on them recorded, to secure the effective operation of the system and for
> other lawful purpose.
> > _______________________________________________
> > Qgis-developer mailing list
> > Qgis-developer at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>



Tom Chadwin, UK National Parks Portal Manager
Telephone: 01434 611511 Mob: 07881 109617
Web: www.northumberlandnationalpark.org.uk<http://www.northumberlandnationalpark.org.uk/>

IMPORTANT NOTICE - Disclaimer - This communication is from Northumberland National Park Authority (NNPA).The Authority’s head office and principal place of business is Eastburn, South Park, Hexham, Northumberland, NE46 1BS, United Kingdom. If you are not the intended recipient(s) please note that any form of disclosure, distribution, copying or use of this communication or the information in it or in any attachments is strictly prohibited and may be unlawful. If you have received this communication in error, please delete the email and destroy any copies of it. Any views or opinions presented are solely those of the author and do not necessarily represent those of NNPA.Contractors or potential contractors are reminded that a formal Order or Contract is needed for NNPA to be bound by any offer or acceptance of terms for the supply of goods or services Although this email and any attachments are believed to be free of any virus or other defects which might affect any computer or IT system into which they are received, no responsibility is accepted by the NNPA for any loss or damage arising in any way from the receipt or use thereof. Computer systems of this Authority may be monitored and communications carried out on them recorded, to secure the effective operation of the system and for other lawful purpose.


More information about the Qgis-developer mailing list