I'm trying to write a QGIS processing script using the new API (3.4), but I hardly find any documentation. Based on this excellent resource by Anita Graser (https://anitagraser.com/2018/03/25/processing-script-template-for-qgis3/), I could manage to set up a basic script that mostly fits my needs.
But I have some fixed-value (eg: ['walking', 'car']
) options for which I'd like to include drop-down menus. I assume that I have to use a QgsProcessingParameterString
but using the available documentation, I could'nt figure out how to do it.
1 Answer 1
The PyQGIS documentation can be searched for all potential QgsProcessingParameter classes: https://qgis.org/pyqgis/master/search.html?q=QgsProcessingParameter&check_keywords=yes
For your use case, QgsProcessingParameterEnum seems fitting.
Here's a usage example from qgis-latlontools-plugin:
self.addParameter(
QgsProcessingParameterEnum(
self.PrmCoordinateOrder,
tr('Coordinate order when using 1 field'),
options=[tr('Lat,Lon (Y,X) - Google map order'),tr('Lon,Lat (X,Y) order')],
defaultValue=0,
optional=True)
)
-
1'QgsProcessingParameterEnum' gives value as Integer i.e. the index. Can you tell me how to access the value from it in processing scriptSouvik Sankar Mitra– Souvik Sankar Mitra2020年12月16日 04:31:50 +00:00Commented Dec 16, 2020 at 4:31
-
Open the plugin in Github, find PrmCoordinateOrder and do a check for where it is used (click on it, select references). There is also an example with more than 2 options further downLeasMaps– LeasMaps2023年04月17日 02:33:04 +00:00Commented Apr 17, 2023 at 2:33