Я хочу разработать графический интерфейс в Python для геообработки ArcGIS.
Могу ли я использовать PyQT для программирования GUI в ArcGIS?
Я также рассмотрел использование Tkinter и wxPython.
Я бы поставил под сомнение необходимость использования вашего собственного графического интерфейса для геообработки.
Идея инструмента геообработки состоит в том, что он проходит через стандартные интерфейсы (диалог прогресса GP, если он включен для сообщений и диалог прогресса, диалог инструмента GP для настройки параметров и запуска инструмента и т. Д.), И я хотел бы услышать использовать случай для попытки обойти это все.
В общем, все зависит от того, что лучше для вас.
Я не упомянул, что PyQT работает немного более стабильно в ArcMap и других программах со своими собственными циклами событий, чем Wx или Tk. Программы Wx и Tk, как правило, ожидают быть единственными потоками пользовательского интерфейса, работающими в процессе, и неправильно работают с циклами событий в других программах с графическим интерфейсом.
Я с Джейсоном - вы должны действительно рассмотреть необходимость графического интерфейса геообработки, так как диалоговое окно прогресса геообработки ArcGIS (по крайней мере, в 9.3.1, не знаю около 10) может быть немного настроено для адаптации к вашим потребностям (добавление сообщения, лог-файлы, прогрессоры и т. д.).
Исходя из моего опыта, Tkinter легко понять, но он сложен, когда требуется совершенно нестандартный дизайн. Кроме того, бывают случаи, когда он не очень хорошо взаимодействовал с ArcGIS (исчезают окна и тому подобное). Существует «упрощенная» библиотека GUI под названием EASYGUI, которая основана на Tkinter, и намного приятнее и проще в управлении. Я немного поиграл с этим и обнаружил, что он намного дружелюбнее, чем Tkinter.
Я попробовал то, что вы хотите сделать, и Джейсон прав - используйте встроенные инструменты. Если вы попытаетесь запустить практически любой набор графических виджетов Python внутри процесса Arcmap, вы столкнетесь с проблемами различного рода - я пробовал это. Лучше всего запускать ваш GUI вне процесса и общаться с Arcmap через COM Arcobjects, используя IGeoprocessor для запуска инструментов. Но если ваш объект просто запускает инструменты геообработки и сценарии, вы действительно не сможете добиться большего успеха, чем создание собственных инструментов панели инструментов и использование стандартных интерфейсов инструментов.