• 15
  • Feb

GTK+是基于C语言的面向对象的图形编程环境,究竟它是如何做到面向对象的呢? 另外,为什么GTK+能被方便地封装成其他语言呢?

为了搞明白这个问题,我开始阅读并翻译GTK+的基础:GObject Reference Manual

----------

了解GTK+开发和GNOME桌面环境的用户应该知道,GTK+可以而且已经被封装成各种各样不同的语言。

它的基础语言是C,应用最广。其次,也有C++的完整实现版本──gtkmm。Python版GTK+也非常流行,其他如perl-gtk、ruby-gtk甚至php-gtk的应用也渐渐多了起来。前几天,刚刚java-gnome(即Java版GTK+)也发布了其新的4.0.6版本) 。其他的GTK Sharp(C#版)等等就不举例了,实在是太多了。

每个人都有自己最拿手或是最喜欢的语言,能用自己想用的语言来开发GTK+,这点无疑对开发者是非常有吸引力的。

当初因为要写Ubuntu Tweak而学习了GTK+,后来学习了Python,顺其自然的转向了用Python来开发GTK+,几乎毫无障碍,非常顺利地将C版Ubuntu Tweak移植成了Python版Ubuntu Tweak。而且此后在Pygtk上新领会的GTK+编程技术,同样可以毫无障碍地应用到C语言的GTK+上。

因此,我对于多语言绑定的GTK+的优势深有体会。 所以最近打算好好深入GTK+时,又转回基于C语言来研究它了。因为C语言是GTK+的基础。

现在有个疑问,为什么基于C语言的GTK+有如此灵活和强大的封装能力?对比基于C++的QT,也有很多语言的封装版本,如Python、Perl,但是却一直没能有C的版本。

所以为了从本质了解GTK+的精髓,我打算学习并翻译GObject Reference Manual。

第一篇不翻译,先引用一下IBM developerWorks的宋国伟先生在写“GObject对象系统”时的前言,也就是GObject Reference Manual的Introduction:

前言

大多数现代的计算机语言都带有自己的类型和对象系统,并附带算法结构。正象GLib提供的基本类型和算法结构(如链表、哈希表等)一样,GObject的对象系统提供了一种灵活的、可扩展的、并容易映射(到其它语言)的面向对象的C语言框架。它的实质可以概括为:

  • 一个通用类型系统,用来注册任意的、轻便的、单根继承的、并能推导出任意深度的结构类型的界面,它照顾组合对象的定制、初始化和内存管理,类结构,保持对象的父子关系,处理这些类型的动态实现。也就是说,这些类型的实现是在运行时重置和卸载的;
  • 一个基本类型的实现集,如整型,枚举型和结构型等;
  • 一个基本对象体系之上的基本对象类型的实现的例子--GObject基本类型;
  • 一个信号系统,允许用户非常灵活的自定义虚的或重载对象的方法,并且能充当非常有效力的通知机制;
  • 一个可扩展的参数/变量体系,支持所有的能被用作处理对象属性或其它参数化类型的基本的类型。

Tags: GTK, manual.

» You can leave a comment.

13 Comments

  1. 哈~~严重支持和强烈关注中

  2. 哈哈。
    从今天开始连载,等载完以后,再一并放个tar包出来。希望对大家有用。

  3. jack

    哈~~强烈支持和严重关注中

  4. Noah

    -_-~应 该 翻 译 成 参 考 手 册 。

  5. 最近刚接触GObject库,正有翻译的打算,事实上已经开始一部分了,才突然发现TualatriX同志已经早就开始了,不知为什么你的msn我看到的是乱码,留下我的联系方式吧,有问题想一起讨论呢
    msn: kfc.skywalker@163.com
    QQ:5705225

  6. 好啊,能一同讨论问题最好了。加你的MSN了。

  7. 手册翻译的如何了?

  8. 哪里能看到你的成果?我现在需要这个东西,谢谢了!

  9. ExclusibePig

    您好,请问哪里能下载到您整合的PDF版?

    • 您好。整合版中途夭折,目前你能从这里获取到未完成的部分。http://code.google.com/p/code-of-tualatrix/source/browse/#svn/trunk/documents

  10. 真不错,非常好。请帮忙推荐我的软件:顶贴机 自动顶贴 顶贴工具 顶贴软件 论坛顶贴 顶帖机 联系qq:525093551 论坛自动顶帖工具 自动顶帖 顶帖工具 顶帖软件 灌水机 刷分机 刷贴机 回贴机 帖子置顶器 联系qq:525093551 论坛自动顶贴机 自动顶贴机 论坛顶贴机 智能顶贴机 百度贴吧顶贴机 顶贴器 顶贴机下载 联系qq:525093551 多谢帮忙介绍

  11. hello

    如果有兴趣翻译的话,可以看看这个:
    libgksu参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/libgksu/index.html
    glib参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/glib/index.html
    gobject参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/gobject/index.html
    gdk-pixbuf参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/gdk-pixbuf/index.html
    gdk参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/gdk/index.html
    gdk3参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/gdk3/index.html
    gtk3参考手册: http://gtk-doc-cn.googlecode.com/svn/docs/gtk3/index.html

Leave a Comment