Mengizinkan pengguna memilih dari 2 opsi untuk parameter input skrip pemrosesan QGIS?


8

Saya ingin membuat kotak drop down yang memperlihatkan 2 atau 3 opsi dan membiarkan pengguna memilih 1 dari mereka?

Saya ingin membiarkan pengguna memilih dari "milimeter", "sentimeter" dan "meter". Opsi ini bukan dari bidang input.

Sepertinya tidak ada satu pun di sini yang valid:

Sepertinya tidak ada satu pun di sini yang valid

Jawaban:


5

Jawaban Germán Carrillo adalah yang paling nyaman. Alternatif yang mungkin (jika Anda terjebak dengan QGIS 2.8) bisa dengan:

  • Gunakan string yang memungkinkan pengguna untuk memasukkan unit yang ingin mereka gunakan:

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

    Unit teks


  • Atau gunakan tiga kotak centang boolean:

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

    Unit kotak centang


9

Jika Anda tidak terbatas pada QGIS v2.8 (tangkapan layar Anda menunjukkan dokumentasi v2.8), Anda dapat menginstal versi yang lebih baru. Misalnya, dalam QGIS v2.14 Anda memiliki selectiontipe parameter yang tersedia (lihat dokumen ):

masukkan deskripsi gambar di sini

Anda dapat menggunakannya dengan cara ini di header skrip, memisahkan opsi dengan titik koma:

##Units=selection Millimeter;Centimeter;Meter

Dan nanti dalam skrip Anda bisa mendapatkan nilai yang dipilih dengan cara ini:

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

Untuk referensi, di sini Anda memiliki contoh skrip .


Terima kasih banyak tetapi saya terbatas pada QGIS v2.8, apakah ada cara untuk melakukannya di v2.8?
chenghopan

0

The pemilihan opsi tidak bekerja pada QGIS 2.18.2 (Las Palmas). Harap perhatikan bahwa parameter pemilihan akan mendapatkan nilai integer, mulai dari 0, (dan bukan nilai string) sesuai dengan urutan string saat Anda menuliskannya dalam pilihan Anda (seperti dalam jawaban Germán Carrillo).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.