Phát triển GUI trong Python để xử lý địa lý ArcGIS bằng PyQT / Tkinter / wxPython?


13

Tôi muốn phát triển GUI trong Python để xử lý địa lý ArcGIS.

Tôi có thể sử dụng PyQT để lập trình GUI trong ArcGIS không?

Tôi cũng đã cân nhắc sử dụng Tkinter và wxPython.

Câu trả lời:


21

Tôi sẽ đặt câu hỏi về nhu cầu sử dụng GUI của riêng bạn để xử lý địa lý.

Ý tưởng của một công cụ xử lý địa lý là nó đi qua các giao diện tiêu chuẩn (hộp thoại tiến trình GP nếu được bật cho các thông báo và hộp thoại tiến trình, hộp thoại công cụ GP để đặt tham số và chạy công cụ, v.v.) và tôi muốn nghe trường hợp sử dụng để cố gắng phá vỡ tất cả.

Tất cả trong tất cả: tất cả là vấn đề tốt nhất cho bạn.

  1. Tkinter được tích hợp sẵn nhưng khá xấu và khó để có được bất cứ thứ gì tinh vi và chạy, nhưng nếu bạn viết UI trong đó, nó sẽ chạy khá nhiều ở mọi nơi .
  2. Wx và PyQT đều gần tương đương về chức năng, mặc dù các ví dụ wxPython rất tuyệt vời để học hỏi và các công cụ dành cho nhà phát triển của QT đẹp hơn một chút. Nhìn vào API của cả hai và xác định cái nào trông đẹp hơn để bạn sử dụng.

Tôi đã không đề cập đến việc PyQT dường như hoạt động theo xu hướng ổn định hơn một chút trong ArcMap và các chương trình khác với các vòng lặp sự kiện của riêng họ so với Wx hoặc Tk. Các chương trình Wx và Tk có xu hướng mong đợi là các luồng ui duy nhất chạy trong một tiến trình và hoạt động sai với các vòng lặp sự kiện trong các chương trình GUI khác.


8

Tôi với Jason - Bạn thực sự nên xem xét sự cần thiết của GUI xử lý địa lý, vì hộp thoại tiến trình xử lý địa lý ArcGIS (ít nhất là trong 9.3.1, không biết về 10) có thể được tùy chỉnh một chút để điều chỉnh theo nhu cầu của bạn (thêm tin nhắn, logfiles, thanh lũy tiến và như vậy).

Từ kinh nghiệm của tôi, Tkinter rất dễ hiểu nhưng phức tạp khi muốn những thiết kế rất độc đáo. Ngoài ra, đôi khi nó không tương tác tốt với ArcGIS (cửa sổ biến mất và như vậy). Có một thư viện GUI "đơn giản hóa" được gọi là EASYGUI dựa trên Tkinter, và đẹp hơn và dễ kiểm soát hơn. Tôi đã chơi với nó một chút và thấy nó thân thiện hơn Tkinter rất nhiều.


4

Tôi đã thử những gì bạn muốn làm và Jason đúng - sử dụng các công cụ tích hợp. Nếu bạn thử và chạy bất kỳ bộ widget python gui nào trong quy trình Arcmap, bạn sẽ gặp rắc rối với nhiều loại khác nhau - tôi đã thử nó. Tốt nhất để chạy GUI của bạn bên ngoài quy trình và nói chuyện lại với Arcmap thông qua COM Arcobjects, sử dụng IGeoprocessor để chạy các công cụ. Nhưng nếu đối tượng của bạn chỉ đơn giản là chạy các công cụ và tập lệnh xử lý địa lý, bạn thực sự không thể làm tốt hơn nhiều so với việc xây dựng các công cụ hộp công cụ của riêng bạn và sử dụng các giao diện công cụ tiêu chuẩn.


2

Bạn chỉ có thể xây dựng GUI trong .NET hoặc Mono và sau đó chạy tập lệnh Python thông qua đối tượng Process .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.