logo资料库

GTK+2.0 编程范例 PDF 清晰版.pdf

第1页 / 共313页
第2页 / 共313页
第3页 / 共313页
第4页 / 共313页
第5页 / 共313页
第6页 / 共313页
第7页 / 共313页
第8页 / 共313页
资料共313页,剩余部分请下载后查看
书名页
内容简介
(CIP)数据
版权页
前言
目录
第1 章窗口与简单控件
1.1 最简单的窗口
1.2 完善窗口的功能
1.3 Hello 程序
1.4 用盒状容器排列按钮
1.5 用格状容器排列按钮
1.6 带图像和快捷键的按钮
1.7 方向按钮
1.8 创建不同样式的标签
1.9 Splash 窗口
第2 章菜单与工具栏
2.1 添加菜单
2.2 创建菜单的快捷方法
2.3 创建工具条
2.4 浮动的工具条和菜单
2.5 状态栏
2.6 完整的应用程序窗口
2.7 动态菜单操作
2.8 条件菜单
2.9 弹出式菜单
第3 章常用控件
3.1 按钮盒
3.2 规范的框架
3.3 URL 链接
3.4 列表框
3.5 下拉列表框
3.6 自由布局
3.7 图像控件的直接引用
3.8 控件属性的综合设置
3.9 数字选择
3.10 执行命令工具
3.11 分隔面板
第4 章对话框
4.1 登录窗口
4.2 创建有多个选项的窗口
4.3 创建一个多项选一的窗口
4.4 创建消息框
4.5 选择文件和目录
4.6 选择字体
4.7 选择颜色
4.8 选择日期
4.9 确认/取消对话框
4.10 是/否/取消对话框
4.11 关于对话框
5 章综合应用
5.1 计算器
5.2 计时器
5.3 简单动画实现
5.4 每日提示
5.5 表格软件
5.6 树状表格
5.7 多窗口功能的实现
第6 章复杂控件
6.1 文本视图控件
6.2 树视图控件
6.3 绘图软件的实现
6.4 安装向导
6.5 不同形状的光标 本
6.6 进度演示
第7 章自定义控件与游戏
7.1 组合成的简单文件选择控件
7.2 八皇后游戏
7.3 小蛇吃豆
7.4 老虎机
第8 章文件操作
8.1 文字编辑软件的实现
8.2 INI 配置文件
8.3 名片管理
8.4 图片查看器
第9 章数据库编程
9.1 连接MySQL 服务器与创建数据库、数据表
9.2 向数据表中插入数据
9.3 从数据表中选择数据
9.4 文档管理
第10 章网络编程
10.1 简单的发E-mail 的软件
10.2 简单的ECHO 服务器
10.3 简单的ECHO 客户端
10.4 多人聊天服务器
10.5 多人聊天服务器的客户端
第11 章高级应用
11.1 更改控件的外观
11.2 做一个桌面主题
11.3 使用线程
11.4 动态链接库
11.5 用C++封装控件
11.6 国际化编程
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 号 http://www.tup.com.cn http://www.tup.tsinghua.edu.cn 出 版 者:清华大学出版社(北京清华大学学研大厦,邮编 100084) 责任编辑:张彦青 印 刷 者: 发 行 者:新华书店总店北京发行所 开 本: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
IV GTK+2.0 编程范例 第 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 提供一种用最短的代码来编写窗口和控件的方法,还有灵活易用的信号/回调 函数机制。通过本章的学习,读者能够创建简单的用户界面,编写一般的回调函数,理解 信号/回调函数机制。 本章主要内容: 如何使用窗口控件 如何使用容器控件 如何使用按钮控件 如何使用标签、图像控件 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,接着创
2 GTK+2.0 编程范例 建本章的工作目录 1,然后再创建本节的工作目录 base,进入此目录开始工作。 (2) 打开编辑器(GEDIT2.0 见前言)。输入如下代码,以 base.c 为文件名保存到当前目 录(base)下: /* 最简单的窗口base.c */ #include int main ( int argc , char* argv[]) { GtkWidget *window; return FALSE; } gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); (3) 编辑 Makefile 输入如下代码: CC = gcc all: $(CC) -o base base.c 'pkg-config --cflags --libs gtk+-2.0' 注意: $(cc)前面不是空格,而是一个键,如果用空格代替编译时会出问题。 以 Makefile 为文件名保存到 base 目录下。 (4) 在终端中执行 make 命令开始编译; (5) 编译结束后,执行命令./base 即可运行此程序,运行结果如图 1.1 所示: 图 1.1 最简单的窗口 (1) 设置 include 文件与声明主函数 首先是#include 语句,这是每个 GTK+2.0 程序都要包含的头文件。然后是 函数声明 int main ( int argc , char* argv[]),这是标准的 C 语言主函数的声明。 (2) 声明变量 GtkWidget *window; 声明了窗口控件的指针。其中 GtkWidget 是 GTK+2.0 控件类型,
分享到:
收藏