2010-03-13 11 views
6

Tôi là một newbie với một chút kinh nghiệm viết bằng BASIC, Python và, của tất cả mọi thứ, một smidgeon của assembler (như là một phần của một hack trò chơi điện tử). Tôi muốn tạo ra công cụ nhỏ để sửa đổi các giá trị hex tại các điểm cụ thể, trong một tập tin cụ thể, mà sẽ có một giao diện GUI.Là một newbie, tôi nên đi đâu nếu tôi muốn tạo một chương trình GUI nhỏ?

Điều tôi đang tìm kiếm là khả năng tạo chương trình GUI nhỏ, mà tôi có thể phân phối dưới dạng EXE (hoặc ít nhất là một thư mục độc lập). Tôi không quan tâm đến ý tưởng của các ngôn ngữ .NET, bởi vì tôi không muốn ép buộc mọi người tải xuống một gói .NET framework lớn. Tôi hiện đang có Python với IDLE và Boa Constructor được thiết lập, và ứng dụng chạy ở đó. Tôi đã thử tìm kiếm thông tin về việc biên dịch một ứng dụng python dựa trên Wxwidgets, nhưng kết quả tìm kiếm và thông tin tôi đã tìm thấy đã gây nhầm lẫn, hoặc hoàn toàn không thể hiểu được.

Câu hỏi của tôi là:

  1. là Python một ngôn ngữ tốt để sử dụng cho các loại dự án này?
  2. Nếu tôi sử dụng Py2Exe, các WxWidgets đã được bao gồm chưa? Hay người dùng của tôi có phải cài đặt WxWidgets trên máy của họ không? Tôi có suy nghĩ đúng lúc Py2Exe chỉ tạo ra một thư mục độc lập, 'dist', có các tệp cần thiết để người dùng chỉ cần nhấp đúp và chạy ứng dụng không?
  3. Nếu chương trình chỉ dựa vào Tkinter cho các công cụ GUI, sẽ được bao gồm trong EXE Py2Exe tạo ra? Nếu vậy, có bất kỳ trình xây dựng GUI/IDE 'trực quan' nào của họ cho Python chỉ với Tkinter không?

Thankyou cho thời gian của bạn,

JBMK

+0

Hầu hết mọi người đều có .Net - hầu hết mọi người đều không có Python ... –

Trả lời

4

Bạn muốn được tốt hơn suy nghĩ/nói/googling wxPython (không wxWidgets), vì wxPython là wrapper python cho wxWidgets C++.

1.) Python là ngôn ngữ tốt cho việc này. Nếu bạn chỉ nhắm mục tiêu các cửa sổ, tôi vẫn làm điều đó trong .NET/C# mặc dù. Nếu bạn muốn cross-platform, Python/wxPython tất cả các cách.

2.) Có, các tệp wxPython phải được bao gồm trong thư mục dist. Bạn sẽ phải tất nhiên cài đặt wxPython cho máy phát triển của bạn. Xem here để biết một số hướng dẫn về cách xây dựng. py2exe tạo ra một thư mục với mọi thứ bạn cần để chạy chương trình. Nó sẽ cung cấp cho bạn một EXE mà bạn có thể nhấp đúp.

3.) Tôi chưa bao giờ sử dụng Tkinter của Python với py2exe, nhưng tôi không thể thấy lý do tại sao nó không hoạt động dọc theo dòng wxPython.

Bạn nên nhớ rằng thư mục cuối cùng có thể phân phối của bạn sẽ là 10s megs (py2exe gói trình thông dịch python và các thư viện khác cần thiết cho ứng dụng của bạn). Không hoàn toàn giống như .NET framework, nhưng gần như tất cả mọi người đã cài đặt sẵn rồi?

0

Đối với dự án GUI đa nền tảng, tôi khuyên bạn nên sử dụng Qt librariesPyQt.

Gần đây tôi đã sử dụng chúng cho một ứng dụng nhỏ và tôi yêu cả hai; Qt có một nhà thiết kế Gui tuyệt vời và mô hình tín hiệu PyQt slot \ làm việc cho tôi.

Bạn có thể triển khai ứng dụng của mình trên Osx và Windows bằng py2app và py2exe; here một liên kết hữu ích cho bạn biết cách thức và kết quả kích thước có thể có.

0
  1. Python sẽ phù hợp với nhu cầu của bạn.
  2. wxWidgets và Python hoàn toàn khác nhau. Tôi nghĩ bạn có nghĩa là wxPython, một bộ công cụ GUI cho Python. Tôi không chắc liệu Py2Exe có bao gồm điều này hay không, vì tôi chưa bao giờ sử dụng Py2Exe - tôi xây dựng các gói và các phụ thuộc của chúng theo cách thủ công.
  3. Khá chắc chắn tkinter sẽ được bao gồm. Tôi sử dụng tkinter một chút và nó hoạt động đủ tốt.
2

Nếu bạn không ngại học ngôn ngữ mới, hãy xem xét Tcl/Tk. Lý do tôi đề cập đến đây là cơ chế phân phối cao cấp của Tcl giúp dễ dàng kết hợp một tệp exe đơn lẻ bao gồm mọi thứ bạn cần - thời gian chạy Tcl/Tk, chương trình, biểu tượng, tệp âm thanh, v.v. bên trong một hệ thống tập tin ảo nhúng. Và cùng một kỹ thuật bạn sử dụng cho một nền tảng hoạt động cho tất cả. Bạn không phải sử dụng các công cụ khác nhau cho các nền tảng khác nhau.

Nếu điều đó gây tò mò bạn, google cho starpack (tệp đơn có tất cả), starkit (ứng dụng nền tảng độc lập) và tclkit (thời gian chạy nền tảng cụ thể).

Tcl/Tk không phải là tách trà của mọi người, nhưng vì ngôn ngữ GUI bắt đầu khó đánh bại IMO. Nếu nó có gót chân Achilles là nó không có hỗ trợ in ấn. Thật đáng ngạc nhiên, mặc dù, có bao nhiêu GUI không cần hỗ trợ in ấn những ngày này.