GObject、Gtk、Gnome、Gtk+、Gl、Gtk2、Gtk3... 我不懂是什么?

9

我需要一个窗口来承载 WebKit 和/或 Cairo 绘图,但首先我必须处理所有这些内容以理解我在做什么。

现在,我迷失了方向,不再明白这些东西到底是什么。

当我尝试使用绑定或者试图弄清楚某个东西的依赖关系时,情况会变得更加糟糕。例如,在 Python 中,pyGtk 被弃用并被 pyGObject 取代(有时被称为 pyGl!!)

有很多网站、很多下载和版本,混合着过时的和新的引用,但没有一个整体架构的视图

我不理解的是,这些东西如何在太多的网站、包和版本中混合在一起?


1
这更像是一种抱怨而不是一个真正的问题,我投票支持关闭。附注:整个事情的架构视图:http://developer.gnome.org/platform-overview/stable/ - ptomato
准确地说,Gnome与GTK有什么关系?Gnome是一种使用GTK和其他框架的“桌面环境”,对吗?好的,如果有所谓的“Gnome平台”,我从哪里可以下载它?如果您不喜欢这个问题中的某些内容,我会感激您编辑并用您自己的话重新表述它。 - KA1
@ptomato,更像是求救。堆栈可能令人困惑。 - ergosys
2个回答

17

简短故事:

如果你要为GTK 2进行编程,使用pyGTK。

如果你要为GTK 3进行编程,使用pyGObject。

长篇故事:

据我了解,pyGTK是基于pyGObject开发的。GObject是GTK的“对象”API。GTK是用C语言开发的,而C语言并不是面向对象的语言。GObject是一个库,提供高级面向对象的功能。所有GTK对象都继承自该库提供的GObject类。

然后出现了GObject-introspection工作。它的目标是使绑定的维护更容易,并使用源代码注释自动生成大部分语言(Python、C++等)的绑定代码。在python方面,这导致了基于GObject introspection工作的python绑定pyGI的产生。那时人们被告知要将其用于GTK3开发。

从那时起,曾由pyGI提供的GObject-introspection工作已经整合到GObject中。pyGObject最终成为开发人员在GTK3中应该使用的Python开发工具。

请阅读:

有关GNOME/GTK关系:

GTK是GNOME项目使用的工具包。它是从GIMP中提取出来的,因此它的名称(GTK代表:GIMP工具包)。GTK是GNOME项目的核心部分,GTK开发人员经常参与GNOME项目。


12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接