[QGIS-Developer] PyQGIS code: setting filter expression for value relation widget

Germán Carrillo carrillo.german at gmail.com
Sat Feb 18 15:58:48 PST 2023


Hi Andreas,


you can modify your Value Relation widget's filter expression using the
QgsEditorWidgetSetup class, in this way:

1) Get the editor widget setup and get a copy of its config dictionary:

    ews = layer.editorWidgetSetup(3)  # *Let's assume your Value Relation
widget is set for a field with index 3*
    new_config = ews.config()  # *We'll use the current config as a basis
to modify only the filter expression*

2) Modify the config dict's filter expression:

    new_config['FilterExpression'] = 'your new expression'

3) Apply changes to your layer:

    new_ews = QgsEditorWidgetSetup('ValueRelation', new_config)
    layer.setEditorWidgetSetup(3, new_ews)  # *Remember that 3 corresponds
to the field index*

And that's it! You should have now a different set of values in the Value
Relation widget.


Regards,

Germán



El lun, 13 feb 2023 a las 5:40, Andreas Neumann via QGIS-Developer (<
qgis-developer at lists.osgeo.org>) escribió:

> Hi,
>
> I am looking for a code snippet in PyQGIS: how can I change the filter
> expression for a value relation widget?
>
> Technically, the widget seems to be a QComboBox. I can get access to the
> combobox, e.g. to get the current value - but how can I access the QGIS
> related functionality, like changing programmatically settings of the value
> relation widget , such as the filter expression? I found the
> QgsValueRelationFieldFormatter object, but it doesn't allow me to change
> the filter expression. Any idea how I would change the filter expression
> using Python?
>
> Thank you for any hints,
>
> Andreas
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>

-- 
-----------
   |\__
(:>__)(
   |/
Soluciones Geoinformáticas Libres
http://geotux.tuxfamily.org/
https://twitter.com/GeoTux2 <http://twitter.com/GeoTux2>

<http://gis.stackexchange.com/users/4972/germ%c3%a1n-carrillo>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20230218/525cb2a3/attachment.htm>


More information about the QGIS-Developer mailing list