Розвиваємо GUI в Python для геопроцесори ArcGIS за допомогою PyQT / Tkinter / wxPython?


13

Я хочу розробити графічний інтерфейс в Python для геообробки ArcGIS.

Чи можна використовувати PyQT для програмування GUI в ArcGIS?

Я також розглядав можливість використання Tkinter та wxPython.

Відповіді:


21

Я б поставив під сумнів необхідність використання власного графічного інтерфейсу для геообробки.

Ідея інструменту геообробки полягає в тому, що він проходить через стандартні інтерфейси (діалогове вікно прогрес GP, якщо воно включено для повідомлень і діалог прогрес, діалогове вікно інструмента GP для встановлення параметрів та запуск інструменту тощо), і я хотів би почути Використовуйте випадок для спроби обійти це все.

Загалом: все залежить від того, що для вас найкраще працює.

  1. Tkinter - це вбудований, але якийсь некрасивий і важкий спосіб отримати щось складне і запущене, але якщо ви в ньому пишете інтерфейс, він буде працювати майже де завгодно .
  2. І Wx, і PyQT близькі до функціонального еквівалента, хоча приклади wxPython чудово вивчити, а інструменти для розробників QT трохи приємніші. Подивіться API та обидва, і визначте, який із них вигідніше використовувати.

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


8

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

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


4

Я спробував те, що ви хочете зробити, і право Джейсона - використовувати вбудовані інструменти. Якщо ви спробуєте запустити практично будь-який набір віджетів python gui всередині процесу Arcmap, ви зіткнетеся з проблемами різного типу - я це спробував. Найкраще запустити свій графічний інтерфейс за межами процесу та поговорити з Arcmap через COM Arcobjects, використовуючи IGeoprocessor для запуску інструментів. Але якщо ваш об'єкт просто працює з інструментами та сценаріями для геообробки, ви дійсно не можете зробити набагато краще, ніж створити власні інструментальні інструменти та використовувати стандартні інтерфейси інструментів.


2

Ви можете просто створити графічний інтерфейс у .NET або Mono, а потім запустити скрипт Python через об'єкт Process .

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