Nhắc nhở cho người dùng nhập liệu trong khi thực thi công cụ tập lệnh Python ArcGIS?


9

Tôi muốn nhắc nhập dữ liệu người dùng sau khi tất cả các tham số đã được chỉ định cho công cụ tập lệnh. Tôi đã thấy nhiều bài đăng trên diễn đàn và câu hỏi stackexchange về điều này, và tất cả đều kết luận rằng nó không cần thiết, nhưng tôi nghĩ trường hợp của tôi là một ngoại lệ. Tôi muốn cung cấp cho người dùng cơ hội xác nhận dữ liệu, chẳng hạn như có bao nhiêu bộ tọa độ GPS. Chúng sẽ là có / không có câu hỏi ("dữ liệu này rõ ràng không chính xác phải không?") Và biểu mẫu nhập tham số của công cụ tập lệnh dường như không hoạt động tốt cho việc này.

Tôi biết trình xử lý sự kiện của Tkinter gây ra sự cố với ArcGIS và các framworks khác cũng gặp vấn đề tương tự. Một cách giải quyết khác mà tôi thấy là tập lệnh của bạn gọi một tập lệnh khác chạy dưới dạng một tiến trình riêng biệt và hiển thị GUI từ quy trình thứ hai, nhưng điều đó có vẻ hơi quá.


Rõ ràng wxPython không hoạt động, nhưng nó không được bao gồm với python. Tôi cần có khả năng phân phối các tập lệnh này mà không có bất kỳ yêu cầu bổ sung nào ngoài ArcGIS, vì vậy điều đó sẽ không hiệu quả với tôi.


Để làm rõ, việc sử dụng quan trọng nhất sẽ là nhắc nhở người dùng khi kiểm tra xác thực phần mềm của tôi không thể xác thực dữ liệu. Ví dụ: tôi có một danh sách ID mà tôi muốn xác thực, nhưng định dạng không nhất quán. Tôi muốn có thể nhắc người dùng bằng hộp thoại có / không nếu tôi không thể xác thực trong phần mềm (ví dụ: ID không khớp với một trong các mẫu phổ biến). Có thể các định dạng ID mới sẽ được tạo mà tôi không biết.


Một ví dụ khác: Tôi có một tệp chứa, trong số những thứ khác, một bảng thời gian bắt đầu và dừng. Tôi muốn xác thực từng hàng của bảng một cách riêng lẻ và nhồi nhét tất cả dữ liệu đó, cộng với các kiểm tra khác, vào cửa sổ cảnh báo sẽ trở nên xấu nhanh.


11
Tôi sẽ tư vấn cho chống lại nó. Các công cụ tập lệnh có nghĩa là có thể chạy mà không cần tương tác của người dùng khi bạn nhấn "Chạy". Tuy nhiên, bạn có thể cung cấp thêm thông báo cảnh báo / lỗi thích hợp bằng mã xác thực .
blah238

2
Bạn đề cập đến việc gọi một quy trình phụ là hackish, nhưng theo như nhận được đầu vào của người dùng, tôi nghĩ đây có thể là lựa chọn duy nhất của bạn nếu bạn gắn bó với các công cụ kịch bản python. Cách mà tôi sẽ làm, nếu tôi hoàn toàn phải có sự tương tác của người dùng với công cụ kịch bản python, bằng cách gọi một quy trình con C #. Nếu tôi nhớ lại, mã python sẽ dừng lại và chờ quá trình phụ hoàn thành trước khi tiếp tục. Điều này mang đến cho bạn cơ hội bao gồm số lượng tương tác người dùng không giới hạn được xây dựng trong C #. Mặc dù vậy, bạn không thể chuyển đối tượng sang C #, vì vậy bạn sẽ phải lấy dữ liệu của mình ở dạng chuỗi.
bluefoot

Mặc dù đối với hồ sơ, tôi đồng ý với blah238
bluefoot

4
Đây chính xác là những gì xác nhận trong các công cụ kịch bản là dành cho.
dùng2856

Tôi nghĩ rằng xác nhận chỉ dành cho xác thực theo kịch bản và không thể có được đầu vào của người dùng? Tôi có thể hiển thị có / không có lời nhắc từ trình xác nhận hoặc điều gì khác có tác dụng tương tự không?
dùng14144

Câu trả lời:


2

Tôi không chắc chắn, tùy chọn này có thể làm việc cho bạn hay không, nhưng có thể bạn có thể nghĩ về việc tạo ứng dụng ac #.

  1. Thực hiện tất cả các tương tác người dùng và xác nhận dữ liệu thông qua ứng dụng này.
  2. Sau khi xác thực tất cả dữ liệu, hãy chạy tập lệnh python.
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.