Python có phải là một lựa chọn tốt để phát triển UI không? Nếu vậy, wxPython hay Tkinter?


12

Tôi mong muốn phát triển một ứng dụng máy tính để bàn bằng Python. Tôi là người mới bắt đầu và tôi không có đủ chuyên môn về Python. Tôi cũng là một lập trình viên Java. Mặc dù tôi có một số kinh nghiệm trong việc xây dựng giao diện người dùng bằng cách sử dụng Swing, nhưng tôi thấy các ứng dụng được phát triển trên Swing quá chậm. Chà, đây có thể là một lý do tại sao nhiều triển khai chính được thực hiện trong C / C ++ như trong trình duyệt / trò chơi.

Phát triển giao diện người dùng trong C ++ có thể là một lựa chọn tốt hơn nhưng tôi thích chọn ngôn ngữ lập trình cấp cao hơn C / C ++. Vì vậy, tôi đã chọn Python giả định rằng nó sẽ hoạt động tốt trên Java Swing vì bản thân Python được xây dựng trên C / C ++.

Vậy tôi có thể tiếp tục với giả định này rằng Python tốt hơn Java Swing để phát triển UI không? Hay bạn đề xuất một ngôn ngữ tốt hơn Python để phát triển UI? Nếu tôi tiếp tục với Python, tôi nên sử dụng bộ công cụ nào cho Tkinter hoặc wxPython và tại sao?


4
Giả định của bạn có vẻ thiếu sót. Python được xây dựng trên C / C ++, nhưng JVM cũng vậy (rất có thể).
user281377

Tại sao lại giới hạn bản thân với Tkinter và wxPython?
Anto

2
Tôi không cố gắng giới hạn bản thân mình. Tôi có ấn tượng rằng đây là hai bộ công cụ nổi tiếng để phát triển GUI.
Vamsi Emani

Lazarus IDE, Trình biên dịch Pascal miễn phí và Object Pascal tạo ra một cách rất nhanh và dễ dàng để phát triển GUI.
systemovich

Câu trả lời:


15

Tôi mới bắt đầu phát triển một ứng dụng máy tính để bàn windows, sử dụng python. Tôi đang sử dụng PyQt .

Nó rất dễ cài đặt và khởi động và chạy. Hướng dẫn tại đây: http://zetcode.com/tutorials/pyqt4/firstprograms/ cho thấy cách dễ dàng, tôi sẽ hiển thị mã:

#!/usr/bin/python

# simple.py

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())

Điều đó giúp bạn có một cửa sổ lên.

Tôi đã chọn Python / PyQt trên C # / WPF vì tôi muốn học python và chủ nhân của tôi đang cho tôi thời gian.

Người quản lý của tôi đã giới thiệu PyQt cho tôi trên các khung khác, vì theo kinh nghiệm của anh ấy, nó dễ sử dụng hơn.



Tôi đã sử dụng PySide trước đây và nó hoạt động khá tốt. Tuy nhiên, sự phát triển trong tương lai của PySide đang ở một chút khập khiễng vì Nokia đã bán hết Qt.
jhocking

5

Nếu bạn đang tìm cách phát triển GUI gốc cho Windows hoặc OSX, tôi khuyên bạn nên sử dụng Tkinter (nghĩa là thư viện GUI Tk có trang phục pythonic) vì điều đó giúp bạn gần gũi hơn với giao diện gốc hơn wxPython (wxWidgets cho python) . Tôi không thấy dễ dàng để định lượng, nhưng trong mắt tôi , ảnh chụp màn hình Windows và OSX . YMMV. Tôi biết rằng Tk ( quan trọng: với bộ tiện ích Ttk) trông rất mạnh mẽ.

Nếu bạn đang phát triển cho Linux, tôi thực sự không thể tư vấn cho người khác, vì tôi đã không biết nền tảng ưa thích hiện tại là gì. :-)


1
Lưu ý rằng Tkinter không cung cấp nhiều vật dụng thường được sử dụng ngoài hộp. Ví dụ: nếu bạn muốn có một thanh tiến trình, bạn sẽ phải tự viết hoặc tìm một người khác đã viết.
James

1
Đợi, nhưng wxWidgets sử dụng các yếu tố GUI gốc. Ít nhất, các ràng buộc C ++ làm. Tôi không chắc lắm về Python.
Zhehao Mao

@ZhehaoMao wxWidgets là sự pha trộn của các yếu tố bản địa và không bản địa. Một số phần tử trông tương tự như bản gốc, nhưng thực sự được xây dựng tùy chỉnh cho API đồng nhất hơn.
Hubert Grzeskowiak

3

Tôi sẽ nói đó là một lựa chọn tốt nếu bạn đã biết và thích Python. Mặt khác, sử dụng ngôn ngữ bạn đã biết, đó là Java. Một ngoại lệ ở đây là nếu đây là một dự án học tập, trong trường hợp đó tôi sẽ đề nghị rằng việc có kinh nghiệm với các ngôn ngữ khác sẽ là một ý tưởng tốt.

Quan điểm của tôi ở đây là Python không thực sự tốt hơn hay kém hơn Java cho các ứng dụng UI, vì vậy hãy sử dụng bất kỳ công cụ nào bạn thích làm việc với.


1

Lời khuyên thực sự duy nhất người ta có thể đưa ra cho tất cả các câu hỏi như thế này là "hãy dùng thử và xem bạn có thích nó không" - ý kiến ​​của người khác về ngôn ngữ lập trình (đặc biệt là ngôn ngữ được yêu thích nhất hoặc bị ghét nhất) hiếm khi đáng giá .

Tuy nhiên, giá trị 5 xu của tôi - để đánh bại các GUI Windows đơn giản, nhanh chóng, sự kết hợp giữa Python và wxWidgets hoạt động rất tốt. Nhưng như tôi đã nói, hãy tự mình thử - bạn có thể kết hợp một thứ đơn giản nhưng hữu ích trong một giờ hoặc lâu hơn, thậm chí không có nhiều kinh nghiệm về Python (tôi chắc chắn không có nhiều).


1

Trong trường hợp bất kỳ ai kết thúc ở đây thông qua công cụ tìm kiếm: bạn có thể nhanh chóng tạo một số ví dụ về Tkinter bằng trình tạo PAGE. Nó tạo ra một số mã tốt sẽ cung cấp cho bạn ý tưởng về những gì nó sẽ mất để đến nơi bạn muốn đi. Nó chắc chắn đòi hỏi bạn phải làm quen với tính tổng quát, như tác giả tuyên bố, nhưng đối với ai đó muốn kiểm tra vùng biển hoặc có được một ý tưởng chung về nơi họ sẽ đến thì đó là một công cụ tốt. TRANG trên SourceForge .


-1

Tôi nghĩ một số loại ứng dụng khá dễ quản lý để viết bằng Python.

Ví dụ: Coach Coach được viết bằng Python / wxPython. Họ sử dụng trình biên dịch Python2exe như py2app, py2exe, v.v. để tạo các tệp thực thi đa nền tảng, trông giống bản địa.


-1

Nếu bạn bị hạn chế phát triển trong hệ sinh thái Windows và sử dụng Visual Studio, thì hãy xem xét Iron Python. Iron Python là Python cộng với các đối tượng .NET.

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.