GObject Gtk, Gnome, Gtk +, Gl, Gtk2, Gtk3 ... Я не понимаю? - PullRequest
9 голосов
/ 12 марта 2012

все мне нужно какое-то окно для размещения webkit или / и cairo drwaing, но сначала мне нужно разобраться со всем этим, чтобы понять, что я делаю.

сейчас.Я потерян и больше не понимаю, что все это значит.

и все становится хуже, когда я пытаюсь работать с привязкой или пытаться выяснить, что является зависимостями для чего-то.например: в python pyGtk устарел и заменен на pyGObject (иногда называемый pyGl !!)

. Существует много сайтов, много загрузок и версий, смешанные устаревшие и новые ссылки, , но нет одного архитектурного представлениявсе это .

что я не понимаю ... как все эти вещи смешиваются друг с другом в слишком большом количестве сайтов, пакетов и версий?

Ответы [ 2 ]

16 голосов
/ 12 марта 2012

Короткая история:

Если вы программируете для GTK 2, используйте pyGTK.

Если вы программируете для GTK 3, используйте pyGObject.

Длинная история:

Из того, что я понял, pyGTK был основан на pyGObject.GObject - это «объектный» API GTK.GTK разработан в C, который не является объектно-ориентированным языком.GObject - это библиотека, которая предоставляет расширенные объектно-ориентированные функции.Все объекты GTK наследуются от класса GObject, предоставляемого этой библиотекой.

Затем началась работа GObject-introspection.Его цель состояла в том, чтобы упростить поддержку привязок и использовать аннотации исходного кода для автоматической генерации большей части кода привязок для каждого языка (python, C ++ и т. Д.).Это привело к созданию стороны python в pyGI, привязок к python, основанных на работе самоанализа GObject.Именно тогда людям было сказано использовать его для разработки GTK3.

С тех пор работа GObject-introspection, ранее предоставленная pyGI, была интегрирована в GObject.В конечном итоге pyGObject стал тем, что разработчики должны использовать для разработки python в GTK3.

Пожалуйста, прочитайте:

О GNOME /Отношения GTK:

GTK - это набор инструментов, используемый проектом GNOME.Он был извлечен из GIMP, отсюда и его название (GTK расшифровывается как GIMP Tool Kit).GTK является основной частью проекта GNOME, и разработчики GTK часто также участвуют в проекте GNOME.

11 голосов
/ 13 марта 2012

Мое понимание тех компонентов, которые вы упомянули:

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

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

  • Представьте, что GI - это интерфейс, которому соответствуют основные библиотеки GNOMEк.
  • PyGI больше не существует;теперь это часть PyGObject в настройке GNOME 3.
  • Какая связь между GTK, GTK + и GTK2?
...