2012-01-13 41 views
15

Công ty của tôi đang cải tiến cơ sở hạ tầng và hệ thống CNTT, vì vậy chúng tôi đang ở giữa hoàn thiện công nghệ để phát triển hệ thống mới.Python trong Phát triển ứng dụng máy tính để bàn

Chúng tôi đã đến hai ứng cử viên; Java & Python.

Tiêu chí chính của lựa chọn là ngôn ngữ phải hoàn tất; theo nghĩa là nó phải có khả năng sử dụng cho việc phát triển ứng dụng trên máy tính để bàn &. Java được chứng minh là lĩnh vực này, với nhiều khung web tốt (JSF, Hibernate, vv) và thư viện GUI tương đối tốt (SWT, Swing). Tuy nhiên, Python trông ngon hơn từ kinh nghiệm cá nhân của tôi, phát triển bằng Python hiệu quả, tôi có thể làm nhiều hơn với ít thời gian hơn (tôi chỉ có kinh nghiệm phát triển web với Django). Tuy nhiên, đối với ứng dụng máy tính để bàn, tôi chưa tìm thấy bất kỳ thư viện GUI tốt nào được tích hợp với IDE như Swing.

Ai đó có thể chỉ cho tôi điều tốt nhất nếu khung công tác GUI có thể cho ứng dụng dành cho máy tính để bàn cho Python không?

+0

@CzarekTomczak có thể tương tác với COM hoặc USB bằng cách sử dụng CEF này không? –

Trả lời

15

Đối với Python GUI, có 3 lựa chọn chính:

(PySide là một nguồn gốc của PyQt).

Đối với việc xây dựng giao diện, bạn có thể sử dụng wxGlade cho wx, và đóng gói QtDesigner cho PyQt/PySide (nào cả hai có thể chuyển đổi các .ui file .py

Cả 3 sử dụng có nguồn gốc widget OS, như vậy sẽ nhìn thẳng vào nhà.

Mặc dù có nhiều kinh nghiệm trong wx, tôi thực sự thích PyQt, như tôi thấy đó là một easir rất nhiều để làm việc với.

đối với một IDE tích hợp cho việc phát triển Python GUI ứng dụng, không có bất kỳ (afaik) hoàn thành ứng dụng, tuy nhiên, tôi personall y sử dụng PyDev trong Eclipse, có thể xử lý mở các tệp .ui trong QtDesigner cho bạn mà bạn muốn lưu, chạy công cụ để tạo tệp .py và nó sẽ hoạt động hoàn hảo.

4

Hoàn toàn có thể xây dựng một ứng dụng GUI SWING bằng Python. Tìm Jython, đó là Python cho JVM. Bất kỳ thư viện Python thuần túy nào (không biên dịch mã C) cho Python sẽ làm việc với Jython bao gồm hầu hết các thư viện chuẩn của Python.

Ngoài ra, vì Jython là một ngôn ngữ JVM, nó có quyền truy cập vào các đối tượng được cung cấp bởi các thư viện Java như SWING, và cũng có thể sử dụng mô hình luồng JVM. Đa luồng trong Python đơn giản là khó khăn do Khóa thông dịch toàn cầu. Jython không có giới hạn đó.

Nếu người khác trong công ty đang hướng tới Java, thì Jython với SWING sẽ là lựa chọn an toàn hơn vì khi mọi người nói rằng bạn nên sử dụng Java vì Thư viện X có sẵn, bạn chỉ cần mỉm cười và nói rằng Jython cũng có thể Tận dụng thư viện Cool X vì Jython là một ngôn ngữ JVM.

Các vấn đề liên quan