2009-03-22 41 views
7

Tôi đang soạn thảo các giao diện người dùng bằng Python từ nhiều năm nay, và tôi chán ngấy với mọi chi tiết về giao diện người dùng của cửa sổ hoặc hộp thoại mỗi lần.Có thư viện Python nào cho phép xây dựng giao diện người dùng mà không cần viết nhiều mã không?

Có một công nghệ cho phép tôi nói, xác định mối quan hệ giữa giao diện được thiết kế Glade-GTK và các bảng và bản ghi của cơ sở dữ liệu SQLite để thực hiện tất cả công việc trung gian không? Nó nên phụ tùng cho tôi công việc viết tay xử lý sự kiện, đánh giá đầu vào và xem các bản cập nhật.

Các công nghệ được đề cập chỉ là ví dụ, nhưng tôi muốn gắn bó với Python càng nhiều càng tốt.

+0

Thông tin bổ sung, một vài tháng sau khi đặt câu hỏi này: Tôi đã phát triển giải pháp của riêng mình cho vấn đề nằm phía trên câu hỏi. Dưới đây là tóm tắt dự án: "Datenwerk là thư viện C được cấp phép của MIT cho GNU/Linux và Windows nhằm cung cấp API dữ liệu/mô hình cho các ứng dụng yêu cầu kiểu mô hình/xem/bộ điều khiển. , đồ họa vector, cảnh, biên tập video và trò chơi. Bindings for Python được bao gồm. ". Dự án được đặt tại https://bitbucket.org/paniq/datenwerk – paniq

Trả lời

5

Bên cạnh những người đã đề cập tôi có thể thêm:

Tôi chưa bao giờ sử dụng bất kỳ trong số họ nên chưa có gợi ý nhưng, đối với những gì nó có giá trị, tôi đã sử dụng ít nhất 2 phức tạp các chương trình được xây dựng trực tiếp trên pygtk hoạt động trong cả Windows và Linux.

Tôi nghĩ Kiwi là duy nhất trong số này được hỗ trợ cho db (thông qua giao diện với SQLAlchemy, SQLObject hoặc Storm) nhưng tôi sẽ ngạc nhiên nếu bạn không thể sử dụng một trong những ORM bên trong khuôn khổ.

+0

kiwi cung cấp khá nhiều chức năng tôi đã mô tả, cảm ơn bạn rất nhiều. – paniq

4

PyQt và các mô hình của nó có thể tự động hóa một số tác vụ này cho bạn (ví dụ: giảm số lượng dữ liệu từ cơ sở dữ liệu và xử lý hầu hết các hành vi của tiện ích con, đệm, v.v.).

Nếu bạn muốn có một cách tiếp cận hướng đối tượng hơn để xử lý SQL, bạn có thể xem xét một giải pháp định hướng ORM (ví dụ SQLAlchemy).

+0

Tôi hy vọng nếu thư viện X đang làm những gì tôi mô tả, tôi thậm chí sẽ không phải sử dụng SQLAlchemy nhiều. Tôi sẽ có một cái nhìn tại PyQt, vẫn sẽ thích Gtk + mặc dù, cho yếu tố tự nhiên Ubuntu. – paniq

+0

Đối với tính tự nhiên của Gnome, bạn có nghĩa là ... bạn luôn có thể chuyển sang KDE nếu bạn muốn các ứng dụng Qt trông giống bản địa hơn ;-) (đùa, sắp xếp) –

1

wxGlade có thể trợ giúp, mặc dù bản thân tôi chưa tự sử dụng nên tôi không nói kinh nghiệm.

Boa Constructor dường như có trình xây dựng GUI wxPython trong đó và cũng có PythonCard, mặc dù phát triển trên hai dự án này dường như đã bị ngừng hoạt động.

4

Dabo được xây dựng trên đầu trang của wxPython, vì vậy bạn có thể không thích nó, nhưng nó được thiết kế để dễ dàng kết nối GUI với cơ sở dữ liệu, vì vậy tôi khuyên bạn nên kiểm tra nếu bạn chưa có. Đặc biệt, nó có các tiện ích tốt để buộc các widget vào dữ liệu và xử lý rất nhiều trường hợp phổ biến trong phát triển GUI.

+0

Tôi đang tìm một thứ như thế này, cảm ơn liên kết! –

1

Đặc điểm có thể là một lựa chọn tốt cho bạn. http://code.enthought.com/projects/traits/docs/html/TUIUG/index.html

Đơn giản vì nó là ánh xạ một giao diện người dùng cho một đối tượng, nó dường như không được tìm nạp quá xa để kết hợp SQLAlchemy cho sự kiên trì.

+0

thú vị. bạn có kinh nghiệm cá nhân nào với thư viện này không? ngay từ cái nhìn đầu tiên nó xuất hiện như nó thực sự không làm gì ngoài việc dọn dẹp quý tộc bận rộn. nhưng tôi tiếp tục đọc. – paniq

+0

okay tôi đã có một cái nhìn vào nó. khái niệm này chắc chắn thú vị, nhưng có vẻ như phần giao diện người dùng không đi sâu lắm, ít nhất là đánh giá từ hướng dẫn. – paniq

+0

Trải nghiệm của tôi với nó khá nhẹ. Tôi đã đề cập đến nó ở đây bởi vì tôi đã có cùng một câu hỏi mà bạn có khi tôi vấp vào nó một vài tháng trở lại. Ppt này dường như đi sâu vào khả năng UI Traits http://tinyurl.com/d4rwhp –

0

Tôi đã có rất nhiều thành công với wxPython, nhưng đó là cách đây vài năm nay và có thể được tốt hơn các giải pháp mới ...

1

Có một cuốn sách tốt về wxPython, "wxPython trong hành động", mà có thể' t được nói cho một số giải pháp khác. Không gõ vào những người khác.Tôi đã thành công trong việc phát triển với wxPython trong quá khứ và nó đi kèm với một bộ ứng dụng demo tuyệt vời với mã nguồn mà bạn có thể mượn một cách tự do.

Trình thiết kế giao diện người dùng tốt nhất mà tôi tìm thấy cho các ứng dụng wxPython là một ứng dụng thương mại, Anthemion DialogBlocks. Đó là bởi một trong những lập trình viên wxPython và đáng giá tiền. Các giải pháp khác cho thiết kế giao diện người dùng bao gồm wxGlade (Tôi thấy nó có thể sử dụng nhưng không có tính năng) và Boa Constructor (chưa sử dụng nó). Wing IDE cũng có thể có một. Stani của Python Editor bó wxGlade, tôi tin. Có rất nhiều dự án khác không thực sự hoạt động hoặc khá cũ.

Theo như tự động hóa SQL, như một người trả lời khác nói, tôi sẽ nhìn vào thuật giả kim SQL, nhưng đường cong học tập cho một ứng dụng nhỏ có thể là quá nhiều và bạn nên đi thẳng đến odbc. Các api odbc tốt nhất là một trong những được sử dụng bởi Django, pyodbc.

Đã một thời gian kể từ khi tôi phát triển với những công cụ này, vì vậy có thể có một cái gì đó mới hơn cho mỗi công cụ, nhưng vào thời điểm đó chắc chắn là giống tốt nhất theo ý kiến ​​của tôi.

0

Ok đây là giải pháp độc đáo nhưng tự viết cho mình một trình tạo mã. Tôi đã làm điều này nhiều lần bằng cách sử dụng Mako. Vì vậy, trong trường hợp của tôi, tôi tự động kiểm tra một bảng mà cột chứa và loại và tạo ra các lớp học từ đó. Nó hoạt động hiệu quả hơn nhưng thực hiện chính xác những gì bạn muốn và có thể sử dụng lại trong các dự án tiếp theo.

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