2011-12-19 37 views
5

TL; DR: Có thư viện để tạo giao diện người dùng khai báo bằng GTK không? Ưu tiên hơn với sự hỗ trợ của Python.Tuyên bố GTK


Tôi là nhà phát triển Python/Django, hầu hết trải nghiệm của tôi về giao diện người dùng là từ web, nơi thiết kế giao diện người dùng được khai báo lỏng lẻo là tiêu chuẩn. Gần đây tôi đã phải tạo một ứng dụng GUI bằng cách sử dụng Java/Swing cho một dự án trường học và kết thúc bằng cách sử dụng SwiXML để tạo bố cục Swing khai báo cho dự án.

Tôi tự hỏi liệu có khả năng tương tự để sử dụng cho Python hay không. Tôi không thích Java, vì vậy tôi sẽ không bắt đầu phát triển các ứng dụng Swing. Khi tìm kiếm Bộ công cụ GUI của Python, tôi đã kết luận rằng ba người chơi chính trong lĩnh vực này là GTK, QT và Wx.

Trong số 3 tôi thích GTK hơn, nhưng tôi không thể tìm thấy bất kỳ cách nào để tạo giao diện người dùng khai báo với GTK. Từ kinh nghiệm của tôi với HTML và SwiXML, tôi thấy việc tạo mã dựa trên giao diện người dùng là một mớ hỗn độn lớn và không muốn làm theo cách đó. Giao diện người dùng khai báo linh hoạt hơn và kết hợp nhiều hơn.

Có thư viện để tạo giao diện người dùng khai báo bằng GTK không? Ưu tiên hơn với sự hỗ trợ của Python.

Nếu không có điều gì (mà tôi cho rằng, vì tôi không thể tìm thấy gì), tôi có thể bắt đầu với QT, mặc dù tôi không thích giao diện mặc định của nó trong Linux . (Nhưng có lẽ nó cũng có thể tùy biến theo cách sao cho nó trông tương tự như GTK.)

+1

http://www.clutter-project.org/ – kechapito

+0

Một số thời gian trước đây, Qt bắt đầu chính xác bắt chước các chủ đề GTK trên Linux. Vì vậy, không có "cái nhìn mặc định" cho nó nữa. Ngoài ra, có [Qt Quick] (https://qt.nokia.com/qtquick/) dành cho UI Qt được khai báo. (thêm điều này làm bình luận vì câu hỏi được nhắm đến GTK). –

+0

@marcushatchenson wow, điều này có vẻ khá gọn gàng! –

Trả lời

12

Tôi nghĩ điều bạn đang tìm kiếm là gtk.Builder. Về cơ bản, các đối tượng gtk.Builder có thể được sử dụng để tải tệp .ui chứa dữ liệu xml mô tả các tiện ích con cho giao diện người dùng và gọi lại cho các sự kiện sẽ được mã tiếp xúc. Các tập tin .ui có thể được tạo ra với glade vì vậy bạn thậm chí không cần phải viết xml chính mình.

+0

Cảm ơn bạn, có vẻ hữu ích. Glade có vẻ khá đẹp. –

+1

Đây là một hướng dẫn, nghĩ rằng đó là một chút lỗi thời: http://www.micahcarrick.com/gtk-glade-tutorial-part-1.html –

0

Nhìn vào enaml. Mặc dù không có bộ công cụ GTK, nó là khung khai báo thực sự duy nhất cho python mà tôi biết.