[QGIS-Developer] changeAttributeValue() slower after editing
Martin Landa
landa.martin at gmail.com
Sat Jun 9 01:30:21 PDT 2018
Hi,
I am running method to update attributes. Here is a simplified version:
"""
def recalculateAttributes(self):
self._layer.setReadOnly(False)
self._layer.startEditing()
features = self._layer.getFeatures()
for feat in features:
self._layer.changeAttributeValue(feat.id(), 2, 1)
self._layer.commitChanges()
self._layer.setReadOnly(True)
"""
I am running this function after loading (seems OK) and after editing:
"""
layer.setReadOnly(False)
iface.actionToggleEditing().trigger()
iface.actionDeleteSelected().trigger()
iface.actionSaveActiveLayerEdits().trigger()
iface.actionToggleEditing().trigger()
layer.setReadOnly(True)
"""
In this case recalculateAttributes() runs at least 3-4x slower. On my
PC of my colleague even 10x slower.
Layer is stored in SQLite format. Using QGIS 2.18.20. Any idea what
could be wrong? Thanks! Martin
--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.cz/mentors/landa
More information about the QGIS-Developer
mailing list