首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
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
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!