2012-03-12 32 views
9

tất cả tôi cần một số cửa sổ để lưu trữ webkit hoặc/và cairo drwaing, nhưng tôi phải đối phó với tất cả những gì đầu tiên để hiểu những gì tôi đang làm.GObject Gtk, Gnome, Gtk +, Gl, Gtk2, Gtk3 ... Tôi không hiểu?

ngay bây giờ. Tôi bị mất và không hiểu nhiều hơn về điều đó.

và mọi thứ trở nên tồi tệ hơn khi tôi cố gắng làm việc với ràng buộc hoặc cố gắng tìm ra những phụ thuộc cho điều gì đó. ví dụ: trong python, PyGTK phản đối và thay thế bằng pyGObject (đôi khi được gọi pyGl !!)

có rất nhiều trang web, nhiều tải và các phiên bản, tài liệu tham khảo đã lỗi thời và mới hỗn hợp, nhưng không phải là một quan điểm kiến ​​trúc của toàn bộ điều.

những gì tôi không hiểu .. làm thế nào tất cả những điều này trộn lẫn với nhau trong quá nhiều trang web, gói và phiên bản?

+1

Đây là thêm một rant hơn một câu hỏi thực sự, tôi bỏ phiếu đóng cửa. PS. kiến trúc toàn cảnh: http://developer.gnome.org/platform-overview/stable/ – ptomato

+0

chính xác và gnome phải làm gì với gtk? gnome là "môi trường máy tính để bàn" sử dụng gtk và những người khác đúng không? ok, nếu có cái gọi là "nền tảng gnome", từ nơi tôi có thể tải xuống? nếu bạn không thích một cái gì đó trong câu hỏi này tôi sẽ biết ơn nếu bạn chỉnh sửa nó và viết lại nó trong các điều khoản của bạn. – KA1

+0

@ptomato, giống như một tiếng kêu cứu. Ngăn xếp * có thể * gây bối rối. – ergosys

Trả lời

16

Câu chuyện ngắn:

Nếu bạn đang lập trình cho GTK 2, sử dụng PyGTK.

Nếu bạn đang lập trình cho GTK 3, hãy sử dụng pyGObject.

Câu chuyện dài:

Từ những gì tôi hiểu, PyGTK được dựa trên pyGObject. GObject là API "đối tượng" của GTK. GTK được phát triển trong C, không phải là ngôn ngữ hướng đối tượng. GObject là thư viện cung cấp các tiện ích hướng đối tượng tiên tiến. Tất cả các đối tượng GTK kế thừa từ lớp GObject do thư viện đó cung cấp.

Sau đó, đến công trình tìm kiếm nội tại GObject. Mục tiêu của nó là làm cho việc ràng buộc bảo trì dễ dàng hơn và sử dụng chú thích mã nguồn để tự động tạo hầu hết mã ràng buộc cho từng ngôn ngữ (python, C++, v.v.). Điều này dẫn đến bên python trong pyGI, các ràng buộc python dựa trên công việc nội tại GObject. Đó là khi mọi người được yêu cầu sử dụng nó để phát triển GTK3.

Kể từ đó, công việc tìm kiếm nội tại GObject được cung cấp bởi pyGI đã được tích hợp vào GObject. pyGObject cuối cùng đã trở thành những gì các nhà phát triển nên sử dụng để phát triển python trong GTK3.

Vui lòng đọc:

Về mối quan hệ GNOME/GTK:

GTK là bộ công cụ được sử dụng bởi các dự án GNOME. Nó đã được trích xuất từ ​​GIMP, do đó tên của nó (GTK là viết tắt của: GIMP Tool Kit). GTK là một phần cốt lõi của dự án GNOME, và các nhà phát triển GTK thường cũng tham gia vào dự án GNOME.

11

sự hiểu biết của tôi về những thành phần mà bạn đề cập:

Dependency chain of the components mentioned in the question, in GNOME 2

Dependency chain of the components mentioned in the question, in GNOME 3

  • Hãy suy nghĩ về GI như một giao diện mà các thư viện GNOME lõi phù hợp với.
  • PyGI không còn tồn tại nữa; nó bây giờ là một phần của PyGObject trong thiết lập GNOME 3.
  • What is the relation between GTK, GTK+ and GTK2?