Cho phép người dùng chọn từ 2 tùy chọn cho tham số đầu vào xử lý tập lệnh QGIS?


8

Tôi muốn tạo một hộp thả xuống hiển thị 2 hoặc 3 tùy chọn và cho phép người dùng chọn 1 từ chúng?

Tôi muốn cho phép người dùng lựa chọn từ "milimet", "centimet" và "mét". Các tùy chọn này không phải từ lĩnh vực đầu vào.

Có vẻ như không ai trong số họ ở đây là hợp lệ:

Có vẻ như không ai trong số họ ở đây là hợp lệ

Câu trả lời:


5

Câu trả lời của Germán Carrillo là thuận tiện nhất. Một giải pháp thay thế khả thi (nếu bạn bị mắc kẹt với QGIS 2.8) có thể là:

  • Sử dụng một chuỗi cho phép người dùng nhập các đơn vị họ muốn sử dụng:

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

    Đơn vị văn bản


  • Hoặc sử dụng ba hộp kiểm tra boolean:

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

    Đơn vị hộp kiểm


9

Nếu bạn không bị giới hạn ở QGIS v2.8 (ảnh chụp màn hình của bạn trỏ đến tài liệu v2.8), bạn có thể cài đặt phiên bản mới hơn. Ví dụ: trong QGIS v2.14 bạn có sẵn một selectionloại tham số (xem tài liệu ):

nhập mô tả hình ảnh ở đây

Bạn có thể sử dụng nó theo cách này trong tiêu đề của tập lệnh, tách các tùy chọn bằng dấu chấm phẩy:

##Units=selection Millimeter;Centimeter;Meter

Và sau này trong tập lệnh, bạn có thể nhận được giá trị được chọn theo cách này:

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

Để tham khảo, ở đây bạn có một kịch bản ví dụ .


Cảm ơn rất nhiều nhưng tôi giới hạn ở QGIS v2.8, có cách nào để làm điều đó trong v2.8 không?
chenghopan

0

Các lựa chọn tùy chọn thực hiện công việc trên QGIS 2.18.2 (Las Palmas). Xin lưu ý rằng tham số lựa chọn sẽ nhận được một giá trị số nguyên, bắt đầu từ 0, (không phải giá trị chuỗi) tương ứng với thứ tự của chuỗi khi bạn viết nó trong lựa chọn của mình (giống như trong câu trả lời của Germán Carrillo).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.