第22章 界面开发基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第22章 界面开发基础

第22章 界面开发基础 在程序设计中,界面设计是最有难度和最富于挑战性的工作之一。因为其中不仅涉及编程的问题,还需要关心用户的需求、使用是否方便和美感方面的问题。本章开始将介绍Linux系统上使用C语言设计界面的相关知识,其中包括Linux系统的桌面环境、界面开发的函数库、界面开发工具、窗体信号和事件,以及与界面开发有关的数据结构和编程技巧。本书的重点部分为GNOME桌面上的GTK+图形界面开发技术,这是当前Linux系统中最流行的界面技术。 22.1 Linux常用桌面环境 在计算机中,桌面环境(Desktop Environment)为操作系统提供一个图形用户界面(GUI)。典型的桌面环境包括图标、视窗、工具栏、文件夹、壁纸等对象,并且具备像鼠标拖放这样的操作能力。整体而言,桌面环境在设计和功能上的特性赋予了它与众不同的外观和使用感受。与其他商业操作系统不同之处是,Linux系统具有多种桌面环境供用户选择,如GNOME、KDE、Xfce、HILDON等等。他们有些是根据不同的应用方向编写,。 22.1.1 GNOME桌面环境 GNOME桌面使用方便,易于管理,其优点包括易用性和国际化。易用性指的是几乎所有人都可以轻松运用此桌面和应用程序,即使是并不熟悉Linux的新用户或残障人士。 22.1.2 KDE桌面环境 KDE,全称为K桌面环境(K Desktop Environment),先与GNOME桌面环境产生,多用在Linux服务器版和程序开发工作站中。 22.1.3 移动设备与HILDON桌面环境 随着移动设备的逐渐普及,越来越需要拥有一个能在多种厂商的硬件环境上运行的操作系统。Linux系统拥有良好的延展性,可为移动设备进行裁剪,将一些最适合移动设备应用的内核组件和应用程序移植到ARM、x86等系统结构的设备上,由此产生了多个针对移动设备的操作系统, 22.2 GTK+图形环境介绍 GTK+是设计GIMP软件时创建的函数库,后来发展为Linux系统下开发图形界面的应用程序的主流开发工具之一,并成为GNU计划的重要组成部分。GTK+设计图形界面应用程序简单高效,开发者可以从较高层次开始界面的设计。 22.3 GLib库介绍 GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库。GLib对C语言进行了扩展,将一些常用数据结构和相关处理函数封装到其中。为了便于移植,GLib提供了一套与硬件无关的数据类型,以及线程、动态调用、线程、主事件循环和常用的宏。GLib由基础类型、对核心应用的支持、实用功能、数据类型和对象系统五个部分组成的。 22.3.1 基础类型 基础类型是在ANSI C标准数据类型的基础上进行的扩展,去掉了类型字长与硬件的关系。例如int类型可能在某些平台上字长为2字节,而在另一些平台上字长为4字节,为程序的移植带来麻烦。而GLib提供的gint类型统一为4字节。所有GLib基础类型均以小写字母“g”为前缀,其后是标准数据类型的名称。例如,gpointer是指针类型(void *)、guint是无符号整型(unsigned int)。这些类型与ANSI C标准数据类型可以混合使用,不影响程序性能。 22.3.2 对核心应用的支持 GLib对核心应用的支持包括事件循环、内存操作、线程操作、动态链接库的操作和出错处理与日志等。 GLib中提供了类似的函数g_malloc()和g_free(),为了方便调用,可使用g_malloc()函数封装的宏g_new()。该宏有两个参数,第一个是数据类型,第二个是分配空间的长度,这段代码中只用到了一个Arg数据结构,所以是g_new (Arg, 1)。在程序结束时用g_free()来释放。 22.3.3 实用功能 GLib实用功能提供了多种常用的算法,这些算法涵盖字符串处理、计时器、随机数和XML解析等数十种功能。 GLib中,创建对象的函数以“g”为前缀,“new”为后缀。代码中首先用g_timer_new()函数创建了计时器,然后用g_timer_start()函数执行计时器。随机数因子使用g_rand_new()创建,并启动一个G_MAXINT次循环,在循环内用g_rand_int_range()函数创建随机数并输出。循环次数到达后,首先释放循环因子,停止计时器。最后,将计时器中的数值输出到终端。 22.3.4 数据类型 GLib中定义了字符串、链表、堆栈和队列等十余种常用数据结构类型,并定义了相关的操作函数。 此外,GLib支持几乎所有C语言的数据结构类型,这些数据结构一般以“G”为前缀。例如,GLink为单向链表。所有相关函数以“g_link”为前缀。 22.4 GObject对象介绍 GLib为C

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档