Desenvolvendo GUI em Python para geoprocessamento ArcGIS usando PyQT / Tkinter / wxPython?


13

Eu quero desenvolver uma GUI em Python para o geoprocessamento ArcGIS.

Posso usar o PyQT para programação de GUI no ArcGIS?

Também considerei usar o Tkinter e o wxPython.

Respostas:


21

Eu questionaria a necessidade de usar sua própria GUI para geoprocessamento.

A idéia de uma ferramenta de geoprocessamento é que ela passa pelas interfaces padrão (a caixa de diálogo de progresso do GP, se ativada para mensagens e uma caixa de diálogo de progresso, a caixa de diálogo da ferramenta GP para definir parâmetros e executar a ferramenta, etc.) e eu gostaria de ouvir o caso de uso para tentar contornar tudo isso.

Em suma: é tudo uma questão do que funciona melhor para você.

  1. O Tkinter é embutido, mas meio feio e difícil de instalar e executar qualquer coisa sofisticada, mas se você escrever uma interface do usuário nela, ela será executada praticamente em qualquer lugar .
  2. Wx e PyQT são quase equivalentes em termos funcionais, embora os exemplos do wxPython sejam ótimos para aprender e as ferramentas de desenvolvedor do QT sejam um pouco mais agradáveis. Observe as APIs de ambos e determine qual delas parece melhor para você usar.

Não mencionei que o PyQT parece funcionar de maneira um pouco mais estável no ArcMap e em outros programas com seus próprios loops de eventos que Wx ou Tk. Os programas Wx e Tk tendem a esperar serem os únicos threads da interface do usuário em execução em um processo e se comportam mal com os loops de eventos em outros programas da GUI.


8

Estou com Jason - Você realmente deve considerar a necessidade de uma GUI de geoprocessamento, pois a caixa de diálogo de progresso de geoprocessamento do ArcGIS (pelo menos na 9.3.1, não sei sobre 10) pode ser um pouco personalizada para se adaptar às suas necessidades (adição de mensagens, arquivos de log, barras de progressores e outros).

Pela minha experiência, o Tkinter é fácil de entender, mas complicado quando se deseja designs muito prontos para uso. Além disso, há momentos em que ele não interage muito bem com o ArcGIS (janelas desaparecendo e outras). Existe uma biblioteca GUI "simplificada" chamada EASYGUI, baseada no Tkinter e muito mais agradável e fácil de controlar. Eu brinquei um pouco e achei muito mais amigável que Tkinter.


4

Eu tentei o que você quer fazer, e Jason está certo - use as ferramentas integradas. Se você tentar executar praticamente qualquer conjunto de widgets python da GUI dentro do processo do Arcmap, terá vários tipos de problemas - eu tentei. É melhor executar sua GUI fora do processo e conversar com o Arcmap através dos Arcobjects COM, usando o IGeoprocessor para executar ferramentas. Mas se seu objeto estiver simplesmente executando ferramentas e scripts de geoprocessamento, você realmente não poderá fazer muito melhor do que criar suas próprias ferramentas de caixa de ferramentas e usar as interfaces de ferramentas padrão.


2

Você pode simplesmente criar a GUI no .NET ou Mono e, em seguida, executar o script Python através do objeto Process .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.