Permitir que o usuário escolha entre 2 opções para o parâmetro de entrada do script de processamento QGIS?

8

Quero criar uma caixa suspensa que mostre 2 ou 3 opções e deixe o usuário escolher 1 delas?

Gostaria de deixar o usuário escolher entre "milímetro", "centímetro" e "medidor". Essas opções não são do campo de entrada.

Parece que nenhum deles aqui é válido:

Parece que nenhum deles aqui é válido

chenghopan
fonte

Respostas:

5

A resposta de Germán Carrillo é a mais conveniente. Uma alternativa possível (se você estiver com o QGIS 2.8) pode ser:

  • Use uma sequência que permita ao usuário inserir as unidades que deseja usar:

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

    Unidades de texto


  • Ou use três caixas de seleção booleanas:

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

    Unidades de caixa de seleção

Joseph
fonte
9

Se você não estiver limitado ao QGIS v2.8 (sua captura de tela aponta para a documentação da v2.8), poderá instalar uma versão mais recente. Por exemplo, no QGIS v2.14, você tem um selectiontipo de parâmetro disponível (consulte a documentação ):

insira a descrição da imagem aqui

Você pode usá-lo dessa maneira no cabeçalho do script, separando as opções com um ponto e vírgula:

##Units=selection Millimeter;Centimeter;Meter

E posteriormente no script, você pode obter o valor escolhido desta maneira:

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

Para referência, aqui você tem um script de exemplo .

Germán Carrillo
fonte
Muito obrigado, mas estou limitado ao QGIS v2.8, existe uma maneira de fazê-lo na v2.8?
Chenghopan
0

A seleção opção faz o trabalho em QGIS 2.18.2 (Las Palmas). Observe que o parâmetro de seleção obterá um valor inteiro, começando com 0 (e não um valor de sequência) corresponde à ordem da sequência conforme você a escreve na sua seleção (como na resposta de Germán Carrillo).

user88484
fonte