9

I want to make a drop down box that shows 2 or 3 options and let the user choose 1 from them?

I would like to let the user to choose from "millimeter", "centimeter" and "meter". These Options are not from the field of input.

It seems like none of them here is valid:

It seems like none of them here is valid

3 Answers 3

9

If you are not limited to QGIS v2.8 (your screenshot points to v2.8 documentation), you can install a newer version. For example, in QGIS v2.14 you have a selection parameter type available (see the docs):

enter image description here

You can use it in this way in the header of the script, separating options with a semicolon:

##Units=selection Millimeter;Centimeter;Meter

And later in the script you can get the chosen value in this way:

if Units == 0:
    # User chose millimeter
elif Units == 1:
    # User chose centimeter
elif Units == 2:
    # User chose meter

For reference, here you have an example script.

1
  • Thanks a lot but I am limited to QGIS v2.8, is there a way to do it in v2.8? Commented Dec 4, 2016 at 5:12
5

Germán Carrillo's answer is the most convenient. A possible alternative (if you're stuck with QGIS 2.8) could be to:

  • Use a string which allows the user to enter the units they want to use:

    ##units=string mm
    
    if units == 'mm':
        # Do something
    elif units == 'cm':
        # Do something
    elif units == 'm':
        # Do something
    

    Text units


  • Or use three boolean checkboxes:

    ##Millimeter=boolean
    ##Centimeter=boolean
    ##Meter=boolean
    
    if Millimeter == True:
        # Do something
    elif Centimeter == True:
        # Do something
    elif Meter == True:
        # Do something
    

    Checkbox units

0

The selection option does work on QGIS 2.18.2 (Las Palmas). Please note that the selection parameter will get an integer value,starting from 0, (and not a string value) correspond to the order of the string as you write it in your selection (just like in Germán Carrillo answer).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.