码迷,mamicode.com
首页 > 其他好文 > 详细

GTK+支持库及GLib

时间:2014-08-29 18:17:28      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:gtk+      面向对象   跨平台   可扩展   

GTK+及其支持库:
    GTK+依赖许多函数库。每个库都给图形应用的开发者一个专门的函数类。GTK+是用C语言编写的面向对象的应用编程接口(API)。它是运用类的概念构建于自身之上的可扩展系统。面向对象的框架最初是作为GTK+函数库的一部分,但是后来从GTK+库中分离出去加入了GLib作为一个叫GObject的独立支持库。GObject保证了能用C进行完整的面向对象开发,包括对象的继承,数据隐藏等等。
    因为能从其他函数库大量调用函数,GTK+的库就能够专注于构建图形界面的需求。GTK+自身的构件包括button,label,text box和window。同时它也提供了很多抽象的组件用于应用程序的布局和扩展事件的捉捕程序。而其他的一些非可视化的开发,像同步或异步的事件进程则主要由其他的一些库的支持。但是GTK+通过自身的API大量提供了调用他们的接口。
   一个叫做Cario的2D图形绘制库从2.8之后为GTK+提供了绘制功能。Cario主要用于在所有不同的平台和系统上连续地绘制矢量图。同时也允许窗口管理程序能充分利用硬件的加速功能。
GLib:
   GLib是一个用于执行许多非图形特性功能的通用库。它能被GTK+调用,同时也能够独立使用。因此一些应用独立使用GLib提供的一些功能而不加入其他的GTK+库。使用GLib的最主要的优点在于它提供了一个跨平台的接口,使你的代码只需少量不需要修改就能运行在它所支持的操作系统中。它的另一个优点是为开发者提供了大量的数据类型。下面是GLib提供的一些数据类型:
    1.GLib提供了在其他一些语言中默认的数据类型,像单向和双向链表,还有其他的一些数据类型像二叉平衡树等等。
    2.HashTable(哈希表)使你能够创建一个指向其他数据的数据表。不同于链表通过一个整数来获取元素,哈希表需要你指定一个二次指针作为键值。
    3.GLib中的字符串类型和C++中相同,当数据加入时能自动生成text buffer(文本缓冲区)。同时也保证和printf类的函数的兼容。
    4.Memory slice作为一个有效创建大量等大内存块的方式能用于创建大量平坦的数据元素。这个结构在GLib 2.10发布的时候被引进,替代了memory chuncks。
    5.Caches使你能够通过简单的一个API共享较大较复杂的数据结构同时帮助你节省了内存空间。它们被用于GTK+的个性化和图形上下文,因为这些对象都会消耗大量的内存资源。
   同时GLib提供了除数据类型以外的其他特性。比如你可以找到文件处理,国际化支持,字符串,调试信号,动态模块加载等等功能函数。在第六章,你将学习到idle function,time-out function和timer,这些都为开发者提供了更多有趣的特性。Idle function允许你在处理器不为该应用做任何事的时候调用函数。Time-out用于在你提供的时间间隔调用函数。而timer用于记录自初始化以来经过的时间,可以用来在应用空转时检测更新,运行自动保存函数,追踪消逝的时间。
   因为GLib的跨平台特性,它构建的库能够轻松用于进程产生,文件操作,内存分配以及线程的相关操作。当你尝试在不同的平台上开发时,其中的任一一项都可能成为噩梦。GLib考虑到了这些困难,因此你无需担心跨平台的兼容性问题。

GTK+支持库及GLib

标签:gtk+      面向对象   跨平台   可扩展   

原文地址:http://blog.csdn.net/u011915301/article/details/38928959

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!