使用PyQT / Tkinter / wxPython在Python中为ArcGIS地理处理开发GUI?


13

我想在Python中为ArcGIS地理处理开发GUI。

我可以在ArcGIS中使用PyQT进行GUI编程吗?

我也考虑过使用Tkinter和wxPython。

Answers:


21

我会问是否需要使用自己的GUI进行地理处理。

地理处理工具的想法是通过标准界面(GP进度对话框(如果启用了消息和进度对话框),GP工具对话框(用于设置参数和运行工具等)),我想听听试图规避所有这些的用例。

总而言之:最适合您的是问题。

  1. Tkinter是内置的,但是很难使任何复杂的东西启动和运行,但是如果您确实在其中编写了UI,它几乎可以在任何地方运行。
  2. Wx和PyQT两者功能上几乎相等,尽管可以从wxPython示例中学习很多东西,并且QT的开发人员工具要好一些。查看这两种API,并确定哪种API更适合您使用。

我没有提及PyQT在ArcMap和其他具有自己的事件循环的程序中似乎比Wx或Tk更加稳定。Wx和Tk程序往往是进程中运行的唯一ui线程,并且与其他GUI程序中的事件循环不兼容。


8

我与Jason在一起-您应该真正考虑地理处理GUI的必要性,因为可以对ArcGIS地理处理进度对话框(至少在9.3.1中,大约不知道10)进行自定义,以适应您的需求(添加消息,日志文件,进度条等)。

根据我的经验,Tkinter易于理解,但在需要非常开箱即用的设计时会很复杂。另外,有时它与ArcGIS的交互效果不佳(窗口消失等)。有一个名为EASYGUI的“简化” GUI库,它基于Tkinter,并且更好,更易于控制。我玩了一下,发现它比Tkinter友好得多。


4

我已经尝试了您想做的事情,Jason的建议是正确的-使用内置工具。如果您尝试在Arcmap进程内运行几乎任何一组python gui小部件,都会遇到各种各样的麻烦-我已经尝试过了。最好在进程外运行GUI,并使用IGeoprocessor通过COM Arcobjects与Arcmap对话。但是,如果您的对象只是运行地理处理工具和脚本,那么您真的不能做得比构建自己的工具箱工具和使用标准工具界面好得多。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.