Запрошення для введення користувачем під час виконання інструменту скрипту ArcGIS Python?


9

Я хочу запропонувати ввести користувач після того, як усі параметри будуть визначені для інструменту скрипту. Я бачив багато дописів на форумах і запитання про stackexchange щодо цього, і всі вони роблять висновок, що це непотрібно, але я вважаю, що моя справа є винятком. Я хочу надати користувачеві можливість підтвердити дані, такі як кількість наборів координат GPS. У них будуть питання "так" або "немає" ("це дані явно невірні?"), А форма введення параметрів інструменту сценарію не здається, що це буде добре для цього.

Я знаю, що обробник подій Tkinter викликає проблеми з ArcGIS, а інші фреймворки мають подібні проблеми. Я знайшов одне вирішення, щоб ваш сценарій викликав інший скрипт, який працює як окремий процес, і відображати графічний інтерфейс від другого процесу, але це здається трохи надто хакітним.


Мабуть, wxPython дійсно працює, але він не входить до python. Мені потрібно мати можливість поширювати ці сценарії без будь-яких додаткових вимог, крім ArcGIS, щоб це не працювало для мене.


Для уточнення, найважливішим використанням буде сповіщення користувача, коли мої перевірки перевірки програмного забезпечення не можуть перевірити дані. Наприклад, у мене є список ідентифікаторів, які я хочу перевірити, але формат не відповідає. Я хочу мати можливість підказати користувачеві діалог "так / ні", якщо я не можу перевірити програмне забезпечення (наприклад, ідентифікатор не відповідає одній із поширених моделей). Можливо, що нові формати ідентифікаторів будуть створені без мого відома.


Інший приклад: у мене є файл, який містить, між іншим, таблицю часу початку та зупинки. Я хочу перевірити кожен рядок таблиці окремо, і набиваючи всі ці дані, а також інші чеки, у вікно попередження стане некрасивим швидко.


11
Я би радив проти цього. Інструменти сценаріїв мають на меті запускатись без взаємодії з користувачем після натискання кнопки «Виконати». Можливо, ви зможете надати більш відповідні повідомлення попередження / помилки, використовуючи код перевірки .
blah238

2
Ви згадуєте викликати підпроцес як хакітський, але, що стосується отримання вводу користувача, я думаю, що це може бути єдиним варіантом, якщо ви дотримуєтесь інструментів сценарію python. Так, як я це зробив би, якби мені абсолютно довелося взаємодіяти з інструментом сценарію python, - викликаючи підпроцес C #. Якщо я пам'ятаю, код python зупиниться і чекатиме завершення підпроцесу, перш ніж продовжити. Це дає вам можливість включити необмежену кількість взаємодії користувачів, вбудованої в C #. Однак ви не можете передавати об'єкти на C #, тому вам доведеться передати свої дані в рядковій формі.
блакитноногий

Хоча для запису я згоден з blah238
bluefoot

4
Саме для цього призначена перевірка інструментів скрипту.
користувач2856

Я думав, що перевірка призначена лише для перевірки сценаріїв, і я не можу отримати користувальницьку інформацію? Чи можу я відобразити підказки "так / ні" від валідатора чи щось інше, що матиме такий же ефект?
користувач14144

Відповіді:


2

Я не впевнений, може ця опція спрацювати для вас чи ні, але, можливо, ви можете подумати над створенням програми #

  1. Проведіть всю взаємодію користувачів та перевірку даних через цю програму.
  2. Після перевірки всіх даних запустіть скрипт python.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.