我需要一个窗口来承载 WebKit 和/或 Cairo 绘图,但首先我必须处理所有这些内容以理解我在做什么。
现在,我迷失了方向,不再明白这些东西到底是什么。
当我尝试使用绑定或者试图弄清楚某个东西的依赖关系时,情况会变得更加糟糕。例如,在 Python 中,pyGtk 被弃用并被 pyGObject 取代(有时被称为 pyGl!!)
有很多网站、很多下载和版本,混合着过时的和新的引用,但没有一个整体架构的视图。
我不理解的是,这些东西如何在太多的网站、包和版本中混合在一起?
我需要一个窗口来承载 WebKit 和/或 Cairo 绘图,但首先我必须处理所有这些内容以理解我在做什么。
现在,我迷失了方向,不再明白这些东西到底是什么。
当我尝试使用绑定或者试图弄清楚某个东西的依赖关系时,情况会变得更加糟糕。例如,在 Python 中,pyGtk 被弃用并被 pyGObject 取代(有时被称为 pyGl!!)
有很多网站、很多下载和版本,混合着过时的和新的引用,但没有一个整体架构的视图。
我不理解的是,这些东西如何在太多的网站、包和版本中混合在一起?
简短故事:
如果你要为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项目。