[Qgis-developer] Field visibility in Python
Matthias Kuhn
matthias.kuhn at gmx.ch
Mon Jun 23 07:00:46 PDT 2014
Did you try to compare to QgsVectorLayer.Hidden?
The list of types is here:
http://qgis.org/api/classQgsVectorLayer.html#a441a8cbb0170c48da6aa7b02dad4b5a3
Regards,
Matthias
On 23.06.2014 15:56, Tom Chadwin wrote:
> Hi Matthias
>
> Ah, OK. I didn't gather that from the API docs. OK, I can print out the editType() value now, which is 11 for hidden:
>
> print i.editType(fields.indexFromName(field))
>
> However, I can't test for it:
>
> if i.editType(fields.indexFromName(field)) != 11
>
> SyntaxError: invalid syntax
>
> I've tried int() or str() to cast the value into another datatype, but with no effect. What am I getting wrong now?
>
> Thanks
>
> Tom
>
> PS And I shall keep an eye on this in version past 2.2 and report back.
>
>
>> -----Original Message-----
>> From: Matthias Kuhn [mailto:matthias.kuhn at gmx.ch]
>> Sent: 23 June 2014 14:46
>> To: Tom Chadwin; qgis-developer at lists.osgeo.org
>> Subject: Re: [Qgis-developer] Field visibility in Python
>>
>> Hi Tom,
>>
>> That works starting from 2.3 (master) / 2.4 (release/stable)
>>
>> For 2.2 you will have to work with
>>
>> i.editType( fields.indexFromName(field) )
>>
>> This will continue to work with 2.4 (And it would be nice if you could
>> test and report in case there's a difference between 2.2 and 2.3 as
>> there's the last week of bugfixing before the release now).
>>
>> Best
>> Matthias
>>
>> On 23.06.2014 15:39, Tom Chadwin wrote:
>>> 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.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.
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
More information about the Qgis-developer
mailing list