[Qgis-developer] Python init script

Andreas Neumann a.neumann at carto.net
Thu Jul 10 00:53:41 PDT 2014


Hi Bernhard,

I am able to change the attribute value in the feature record, but the 
attribute dialog does not update the value. Probably because "feature" 
is not live-linked but a copy of the record?

The other bad thing is that there is no way to address widgets by 
objectName. They don't seem to have object names in drag-and-drop mode 
or in the standard feature form mode. So no way to use 
dialog.findChild() or dialog findChildren(). Only if you use qtdesigner 
forms you can set the objectname.

I think that the widgets in the feature form should be addressable by 
objectName in the future. Will open a feature request.

Andreas

Am 2014-07-10 09:04, schrieb Bernhard Ströbl:
> Hi Andreas,
> 
> I doubt you can access the QLineEdit (though I do not know for sure).
> Why don't you change the attribute data of the feature before opening
> the form (keeping the "real" value in memory and redoing the change if
> the user did not change the value in the form)?
> 
> Bernhard
> 
> Am 09.07.2014 16:09, schrieb Andreas Neumann:
>> Hi,
>> 
>> I am trying to do a python init script that executes upon opening a 
>> form
>> (the standard-form, not a custom form).
>> 
>> The script should take a value of a feature, round the value (without
>> modifying the data) and display it in the form instead of the 
>> unrounded
>> value.
>> 
>> I can get access to the attribute data, but don't know how to access 
>> the
>> QLineEdit to change the value in the form.
>> 
>> Here is what I did so far:
>> 
>> ---------------------------------------------------------------
>> 
>> # -*- coding: utf-8 -*-
>> # Import the PyQt and QGIS librariesfrom qgis.core import *
>> from PyQt4.QtCore import *
>> from PyQt4.QtGui import *
>> from qgis.core import *
>> from qgis.gui import *
>> 
>> def featureFormInit(dialog,layer,feature):
>> 	area_rounded = round(feature.attribute("f_area"))
>> 	feature.setAttribute("f_area",area_rounded)
>> 
>> ---------------------------------------------------------------
>> 
>> The above code works fine so far and I checked by logging the rounded
>> value. How can I now get access to the correct widget and replace the
>> unrounded value with the rounded one?
>> 
>> Thanks for any hint,
>> Andreas
> 
> 
> __________ Information from ESET Mail Security, version of virus
> signature database 10073 (20140710) __________
> 
> The message was checked by ESET Mail Security.
> http://www.eset.com
> 
> 
> _______________________________________________
> 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