在 Python 中封装 GObject
2007-03-29 12:14:54 来源:WEB开发网核心提示: 既然我们构造了覆盖文件,那么就可以使用它来生成包装器,在 Python 中封装 GObject(4), gnome-python 绑定为生成包装器提供了一种神奇的工具,我们可以随意使用它,代码生成器的最后一个选项是定义文件本身,代码生成器在标准输出上进行输出,将下列内容添加到 makefi
既然我们构造了覆盖文件,那么就可以使用它来生成包装器。 gnome-python 绑定为生成包装器提供了一种神奇的工具,我们可以随意使用它。将下列内容添加到 makefile:
清单 2. 初始 makefile
DEFS='pkg-config --variable=defsdir pygtk-2.0'
trayicon.c: trayicon.defs trayicon.override
pygtk-codegen-2.0 --prefix trayicon
--register $(DEFS)/gdk-types.defs
--register $(DEFS)/gtk-types.defs
--override trayicon.override
trayicon.defs > $@
再次详细说明:
DEFS='pkg-config --variable=defsdir pygtk-2.0'
DEFS 是包含 Python GTK+ 绑定定义文件的路径。
trayicon.c: trayicon.defs trayicon.override
生成的 C 代码取决于定义文件和覆盖文件。
pygtk-codegen-2.0 --prefix trayicon
这里调用 gnome-python 代码生成器。 prefix 参数被用作在已生成的代码内部的变量名的前缀。您可以随意命名该参数,但使用模块名的话可使符号名保持一致。
--register $(DEFS)/gdk-types.defs
--register $(DEFS)/gtk-types.defs
模块使用 GLib 和 GTK+ 中的类型,所以我们还必须告诉代码生成器装入这些类型。
--override trayicon.override
该参数将我们创建的覆盖文件传递给代码生成器。
trayicon.defs > $@
这里,代码生成器的最后一个选项是定义文件本身。代码生成器在标准输出上进行输出,所以我们将它重定向到目标 trayicon.c。
更多精彩
赞助商链接