logo资料库

GTK+2.0编程范例.doc

第1页 / 共289页
第2页 / 共289页
第3页 / 共289页
第4页 / 共289页
第5页 / 共289页
第6页 / 共289页
第7页 / 共289页
第8页 / 共289页
资料共289页,剩余部分请下载后查看
GTK+2.0 编程范例 宋国伟编著 (京)新登字158 号内容简介 清华大学出版社 本书以范例程序的形式,由浅入深的引导读者学习开源软件领域和Linux 平台上最为著名的图形界面开发工
具GTK+2.0 的程序设计,是学习使用GTK+2.0 编程的良师益友。 本书共11 章,提供了70 余个GTK+2.0 程序范例,可以分两部分。第一部分为第1 章至第5 章,主要讲述 基础的GTK+2.0 编程、GTK+2.0 中的常用控件的使用方法、常用的GTK+2.0 编程技巧及其综合应用等,是初学 者入门的导引;第二部分为第6 章到第11 章,是前一部分的提高和扩展。主要讲述GTK+2.0 中新增的复杂控件 的使用、文件操作、游戏编程、自定义控件、结合MySQL 数据库编程、网络编程和GTK+2.0 中外观启动文件、 动态链接库、线程等高级应用。是进一步研究和应用GTK+2.0 编程,开发实用程序和大型软件的前提。 本书适合利用GTK+2.0 开发的专业人员,具有C 语言基础的大中专院校的相关专业的师生以及在Linux 上 开发图形界面的爱好者。 版权所有,翻印必究。本书封面贴有清华大学出版社激光防伪标签,无标签者不得销 售。 图书在版编目(CIP)数据 GTK+2.0 编程范例/宋国伟编著.-北京:清华大学出版社,2002 ISBN 7-302-06011-8 I.G… II.宋… III.Linux 操作系统-程序设计 IV.TP316.81 中国版本图书馆CIP 数据核字(2002) 第081653 号 出 版 者 : 清 华 大 学 出 版 社 ( 北 京 清 华 大 学 学 研 大 厦 , 邮 编 100084) http://www.tup.com.cn http://www.tup.tsinghua.edu.cn 责任编辑:张彦青印刷者:发行者:新华书店总店北京发行所开本:787×1092 1/16 印张:20 字 数 : 469 千 字 版 次 : 2002 年 11 月 第 1 版 2002 年 11 月 第 1 次 印 刷 书 号 : ISBN 7-302-06011-8/TP·3588 印数:0001~4000 定价:33.00 元 前言 首先要解释两个概念,GIMP 和GTK。GIMP(GNU Image Manipulation Program,GNU 图像 处理程序)是基于Linux 平台,能与Photoshop 相媲美的图像处理软件;GTK(GIMP Tool Kit,GIMP 工具包)最初是GIMP 的专用开发库,后来发展为Linux 下开发图形界面应用程序的主流开发工 具之一,备受开源软件开发者瞩目。 2002 年3 月11 日,GTK+2.0 版正式发布,开发者们自豪地宣称“GTK+2.0 标志着自由软 件领域的图形界面开发工具走向成熟”。
GTK+2.0 是自由软件,并且是GNU 工程的一部分。GTK+2.0 的许可协议LGPL,允许任何 开发者使用(包括那些开发中的专利软件)且不收任何费用。GTK+2.0 是当今惟一百分之百零付费 的工业级的图形界面开发工具。 在发布GTK+2.0 软件包同时还发布了GLib2.0 、ATK1.0 和Pango1.0 这3 个与其相关的程 序库,这些构成了GNOME2 桌面环境的基础。 GLib2.0 是一个以C 语言编写的底层核心库,是GTK+2.0 和GNOME 的基石。它提供数据结 构的C 语言接口和运行时函数的接口,如事件循环、线程、动态调用和对象系统等。是一个轻量 级的实用性非常强的程序库软件包。 Pango1.0 是一个重在国际化的布局和正文翻译库,它为GTK+2.0 提供核心正文格式化、窗 口和字体操作。 ATK1.0 提供友好的界面集,在ATK 界面的支持下,应用程序或工具软件可以使用其他输 入设备。 本书就以GTK+2.0 为开发工具,向读者全面展示了在LINUX 平台上开发应用程序的各个侧 面,由浅入深地一步一步引导初学者在LINUX 平台上开发图形界面应用程序。 1. 读者对象 GTK+2.0 是采用C 语言设计,且本书所有例程都是用纯C 语言开发的,所以要求读者一定 要熟悉、掌握C 语言,对Linux 操作系统较熟悉,会用Linux 命令和GNOME、KDE 等桌面环 境操作,会用LINUX 下常用的C 语言编译器GCC,编译C 语言程序等。本书适合利用GTK+2.0 开发的专业人员,具有这些前提的大中院校的相关专业师生以及想在LINUX 上开发图形界面的 LINUX 爱好者。 2. 运行平台 本书的所有例程都在RedHat Linux 7.2 操作系统,GNOME2 桌面环境,运用GCC2.96 编译 通过。所有源程序都用GEDIT 2.0 编辑器编辑,使用UTF8 格式编码。 正是由于清华大学出版社彭欣编辑的多方努力,才使此书得以出版;我妻子郝春艳女士和我 父母对我的写作提供了大力支持,在此对他们表示衷心的感谢。 宋国伟2002 年9 月 目录 第1 章窗口与简单控件...............................................................................................................................1 1.1 最简单的窗口.......................................................................................................................................1 1.2 完善窗口的功能....................................................................................................................................4
1.3 Hello 程序..............................................................................................................................................7 1.4 用盒状容器排列按钮............................................................................................................................9 1.5 用格状容器排列按钮..........................................................................................................................12 1.6 带图像和快捷键的按钮......................................................................................................................15 1.7 方向按钮.............................................................................................................................................19 1.8 创建不同样式的标签..........................................................................................................................22 1.9 Splash 窗口..........................................................................................................................................24 第2 章菜单与工具栏..........................................................................................................................27 2.1 添加菜单.............................................................................................................................................27 2.2 创建菜单的快捷方法..........................................................................................................................31 2.3 创建工具条.........................................................................................................................................33 2.4 浮动的工具条和菜单..........................................................................................................................36 2.5 状态栏.................................................................................................................................................39 2.6 完整的应用程序窗口..........................................................................................................................41 2.7 动态菜单操作.....................................................................................................................................48 2.8 条件菜单.............................................................................................................................................50 2.9 弹出式菜单.........................................................................................................................................52 第3 章常用控件...................................................................................................................................57 3.1 按钮盒.................................................................................................................................................57 3.2 规范的框架.........................................................................................................................................60 3.3 URL 链接............................................................................................................................................63 3.4 列表框.................................................................................................................................................65 3.5 下拉列表框.........................................................................................................................................67 3.6 自由布局.............................................................................................................................................71 3.7 图像控件的直接引用..........................................................................................................................74 3.8 控件属性的综合设置..........................................................................................................................77 3.9 数字选择.............................................................................................................................................80 3.10 执行命令工具....................................................................................................................................82 3.11 分隔面板...........................................................................................................................................84 第4 章对话框...........................................................................................................................................87
4.1 登录窗口.............................................................................................................................................87 4.2 创建有多个选项的窗口......................................................................................................................89 4.3 创建一个多项选一的窗口..................................................................................................................93 4.4 创建消息框.........................................................................................................................................96 4.5 选择文件和目录..................................................................................................................................99 4.6 选择字体...........................................................................................................................................102 4.7 选择颜色...........................................................................................................................................104 4.8 选择日期...........................................................................................................................................107 4.9 确认/取消对话框..............................................................................................................................109 4.10 是/否/取消对话框...........................................................................................................................111 4.11 关于对话框.....................................................................................................................................114 第5 章综合应用.................................................................................................................................117 5.1 计算器...............................................................................................................................................117 5.2 计时器...............................................................................................................................................123 5.3 简单动画实现...................................................................................................................................126 5.4 每日提示...........................................................................................................................................128 5.5 表格软件...........................................................................................................................................132 5.6 树状表格...........................................................................................................................................138 5.7 多窗口功能的实现............................................................................................................................142 第6 章复杂控件..................................................................................................................................145 6.1 文本视图控件...................................................................................................................................145 6.2 树视图控件.......................................................................................................................................150 6.3 绘图软件的实现................................................................................................................................156 6.4 安装向导...........................................................................................................................................160 6.5 不同形状的光标................................................................................................................................166 6.6 进度演示...........................................................................................................................................169 第7 章自定义控件与游戏................................................................................................................174 7.1 组合成的简单文件选择控件............................................................................................................174 7.2 八皇后游戏.......................................................................................................................................179
7.3 小蛇吃豆...........................................................................................................................................189 7.4 老虎机...............................................................................................................................................196 第8 章文件操作..................................................................................................................................207 8.1 文字编辑软件的实现........................................................................................................................207 8.2 INI 配置文件.....................................................................................................................................220 8.3 名片管理...........................................................................................................................................229 目录V 8.4 图片查看器.......................................................................................................................................236 第9 章数据库编程..............................................................................................................................240 9.1 连接MySQL 服务器与创建数据库、数据表.................................................................................240 9.2 向数据表中插入数据........................................................................................................................250 9.3 从数据表中选择数据........................................................................................................................254 9.4 文档管理...........................................................................................................................................259 第10 章网络编程................................................................................................................................266 10.1 简单的发E-mail 的软件.................................................................................................................266 10.2 简单的ECHO 服务器.....................................................................................................................269 10.3 简单的ECHO 客户端.....................................................................................................................272 10.4 多人聊天服务器..............................................................................................................................276 10.5 多人聊天服务器的客户端..............................................................................................................280 第11 章高级应用.............................................................................................. .................................286 11.1 更改控件的外观..............................................................................................................................286 11.2 做一个桌面主题..............................................................................................................................289 11.3 使用线程.........................................................................................................................................292 11.4 动态链接库.....................................................................................................................................296 11.5 用C++封装控件.............................................................................................................................299 11.6 国际化编程.....................................................................................................................................304 第1 章窗口与简单控件
本章重点: 开发图形用户界面(GUI) 程序的第一步是创建窗口,然后完善窗口的功能,进一步向窗口中 添加一些常用的控件,再就是编程使控件响应相关的事件。用GTK+2.0 来开发GUI 程序也是如 此。 GTK+2.0 提供一种用最短的代码来编写窗口和控件的方法,还有灵活易用的信号/回调函数 机制。通过本章的学习,读者能够创建简单的用户界面,编写一般的回调函数,理解信号/回调函 数机制。 本章主要内容: z 如何使用窗口控件 z 如何使用容器控件 z 如何使用按钮控件 z 如何使用标签、图像控件 1.1 最简单的窗口 本节将介绍用GTK+2.0 创建一个最简单的窗口,并把它显示出来的方法。同时通过这一过程 理解GTK+2.0 程序结构。 窗口是GUI 编程中直接面对用户的操作对象,创建窗口也就成了初学者学习GUI 编程的第一 步。GTK+2.0 提供了非常简便的创建窗口的方法,用它写出的代码在所有GUI 开发工具中几乎 是最短的,也是最容易理解的。 (1) 启动Linux,进入GNOME 桌面环境,打开终端输入如下命令: cd ~ mkdir ourgtk cd ourgtk mkdir 1 cd 1 mkdir base cd base 创建工作目录,并进入此目录开始编程。说明:首先进入用户工作目录,创建一个学习GTK+2.0 总 的工作目录ourgtk ,接着创建本章的工作目录1,然后再创建本节的工作目录base,进入此目录开 始工作。 (2) 打开编辑器(GEDIT2.0 见前言)。输入如下代码,以base.c 为文件名保存到当前目录(base) 下: /* 最简单的窗口base.c */ #include int main ( int argc , char* argv[])
{ GtkWidget *window; gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return FALSE; } (3) 编辑Makefile 输入如下代码: CC = gccall: $(CC) -o base base.c 'pkg-conf ig --cflags --libs gtk+-2.0' 注意:$(cc)前面不是空格,而是一个 键,如果用空格代替编译时会出问题。 以Makefile 为文件名保存到base 目录下。 (4) 在终端中执行make 命令开始编译; (5) 编译结束后,执行命令./base 即可运行此程序,运行结果如图1.1 所示: 1 2 图1.1 最简单的窗口 (1) 设置include 文件与声明主函数
分享到:
收藏