简介
本书介绍了Linux下图形用户接口(GUI)编程技术。全书共18章,分五个部分。第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括三个附录,附录A是书中使用的示例GnomeHello的源代码,附录B介绍了一些与Gtk+/Gnome编程相关的在线资源,附录C是Gtk+/Gnome对象的简要介绍。
本书中的Gtk+构件示例都来自于GTK 1.2.3软件包的示例。如果下载并安装了GTK 1.2.3软件包,则能够在展开的源代码目录下找到这些示例代码。
本书适用于有Linux使用经验及C语言编程基础的读者阅读。
目录
目 录
前言
第一部分 linux gui编程框架及编程基础
第1章 linux软件开发概述 1
1.1 关于linux 1
1.2 关于linux的桌面环境 2
1.3 linux系统中的软件开发 3
1.3.1 开发所使用的库 3
1.3.2 gnome的开发结构 4
1.4 开发linux应用程序的编程语言
和编程工具 6
1.5 本书的结构 7
第2章 gtk+/gnome开发简介 8
2.1 安装gtk+/gnome库 8
2.2 第一个gtk+应用程序 9
2.2.1 一个什么也不能做的窗口 9
2.2.2 示例代码的含义 9
2.2.3 gtk的hello world 10
2.2.4 gtk+的信号和回调函数原理 12
2.2.5 hello world代码解释 14
.2.2.6 运行helloworld 17
2.3 gnome应用程序 17
2.4 gnu c 编译器 18
2.4.1 使用 gcc 18
2.4.2 gcc 选项 18
2.5 初始化库 19
2.6 用popt分析参数 20
2.6.1 参数分析方法 20
2.6.2 gnomehello程序的参数分析 22
2.7 国际化 25
2.8 保存配置信息 27
2.8.1 读出存储的配置数据 28
2.8.2 在配置文件中存储数据 30
2.8.3 配置文件迭代器 30
2.8.4 节迭代器 33
2.8.5 其他的配置文件操作 33
2.9 会话管理 34
2.10 gtk+的主循环 36
2.10.1 主循环基本知识 36
2.10.2 退出函数 36
2.10.3 timeout函数 37
2.10.4 idle函数 37
2.10.5 输入函数 38
2.11 编译应用程序 39
2.11.1 生成源代码树 39
2.11.2 configure.in文件 41
2.11.3 makefile.am文件 43
2.11.4 安装支持文件 44
第二部分 linux 编程常用c 语言
函数库及构件库
第3章 glib库简介 49
3.1 类型定义 49
3.2 glib的宏 49
3.2.1 常用宏 49
3.2.2 调试宏 50
3.3 内存管理 52
3.4 字符串处理 53
3.5 数据结构 55
3.5.1 链表 55
3.5.2 树 59
3.5.3 哈希表 63
3.6 gstring 65
3.7 计时器函数 66
3.8 错误处理函数 67
3.9 其他实用函数 67
第4章 构件定位 69
4.1 构件的显现、映射和显示 69
4.2 其他的构件概念 70
4.3 构件的类型转换 72
4.4 组装构件 72
4.4.1 尺寸分配 73
4.4.2 gtkwindow构件 74
4.4.3 gtkbox 76
4.4.4 表格构件gtktable 79
4.4.5 固定容器构件gtkfixed 83
4.4.6 布局容器构件gtklayout 85
第5章 按钮构件 87
5.1 普通按钮gtkbutton 87
5.2 开关按钮gtktogglebutton 90
5.3 检查按钮gtkcheckbutton 91
5.4 无线按钮gtkradiobutton 91
第6章 调整对象 95
6.1 创建一个调整对象 95
6.2 使用调整对象 95
6.3 调整对象内部机制 96
第7章 文本构件gtktext 98
7.1 创建、配置文本构件 98
7.2 操作文本 99
7.3 键盘快捷键 100
7.4 gtktext示例 100
第8章 范围构件gtkrange 105
8.1 滚动条构件gtkscrollbar 105
8.2 比例构件gtkscale 105
8.2.1 函数和信号 105
8.2.2 常用的范围函数 106
8.2.3 键盘和鼠标绑定 107
8.2.4 示例 107
第9章 杂项构件 114
9.1 标签构件gtklabel 114
9.2 箭头构件gtkarrow 117
9.3 工具提示对象gtktooltips 119
9.4 进度条构件gtkprogressbar 120
9.5 对话框构件 126
9.6 pixmap 127
9.7 标尺构件gtkruler 134
9.8 文本输入构件gtkentry 137
9.9 微调按钮构件gtkspinbutton 140
9.10 组合框gtkcombo 146
9.11 日历构件gtkcalendar 148
9.12 颜色选择构件gtkcolorselect 158
9.13 文件选择构件gtkfileselect 162
第10章 容器构件gtkcontainer 165
10.1 事件盒构件gtkeventbox 165
10.2 对齐构件gtkalignment 166
10.3 框架构件gtkframe 167
10.4 比例框架构件gtkaspectframe 169
10.5 分栏窗口构件gtkpanedwindow 170
10.6 视角构件gtkviewport 174
10.7 滚动窗口构件gtkscrolled
window 175
10.8 按钮盒构件gtkbuttonbox 177
10.9 工具条构件gtktoolbar 181
10.10 笔记本构件gtknotebook 187
第11章 分栏列表构件gtkclist 193
11.1 创建分栏列表构件gtkclist 193
11.2 操作模式 193
11.3 操作分栏列表构件列标题 194
11.4 操纵列表 194
11.5 向列表中添加行 196
11.6 在单元格中设置文本和pixmap
图片 197
11.7 存储数据指针 198
11.8 处理选择 198
11.9 信号 199
11.10 gtkclist示例 199
第12章 树构件 204
12.1 创建新树构件 204
12.1.1 添加一个子树 204
12.1.2 处理选中的列表 205
12.1.3 树构件内部机制 205
12.1.4 信号 206
12.1.5 函数和宏 206
12.2 树项构件gtktreeitem 208
12.2.1 信号 209
12.2.2 函数和宏 210
12.3 树构件示例 210
第13章 gnomeapp构件和gnomeuiinfo 215
13.1 主窗口gnomeapp 215
13.2 gnomeuiinfo 216
13.2.1 创建gnomeuiinfo 216
13.2.2 将gnomeuiinfo转换为构件 218
第14章 状态条构件 221
14.1 状态条构件简介 221
14.2 gnomeappbar构件 221
14.3 状态条构件gtkstatusbar 222
第15章 对话框 225
15.1 gnomedialog构件 225
15.1.1 创建对话框 225
15.1.2 填充对话框 226
15.1.3 处理gnomedialog的信号 226
15.1.4 最后的修饰 227
15.2 模态对话框 229
15.3 一个对话框示例 230
15.4 特殊对话框 231
15.4.1 gnomeabout 231
15.4.2 gnomepropertybox—属性框 233
15.4.3 gnomemessagebox—消息框 234
第16章 gdk 基础 236
16.1 gdk和xlib 236
16.2 gdkwindow 237
16.2.1 gdkwindow和gtkwidget 237
16.2.2 gdkwindow属性 238
16.3 视件和颜色表 240
16.3.1 gdkvisual 240
16.3.2 视件的类型 241
16.3.3 颜色和gdkcolormap 242
16.3.4 获得颜色表 244
16.4 可绘区和pixmap 244
16.5 事件 245
16.5.1 事件类型 245
16.5.2 事件屏蔽 247
16.5.3 在gtk+中接收gdk事件 248
16.5.4 鼠标按键事件 250
16.5.5 键盘事件 252
16.5.6 鼠标移动事件 254
16.5.7 焦点变更事件 257
16.6 鼠标指针 257
16.6.1 指针定位 257
16.6.2 独占指针 258
16.6.3 改变光标 259
16.7 字体 259
16.8 图形上下文 263
16.9 绘图 267
16.9.1 画点 267
16.9.2 画线 268
16.9.3 矩形 268
16.9.4 画弧 269
16.9.5 多边形 269
16.9.6 文本 270
16.9.7 pixmap像素映射图形 270
16.9.8 rgb缓冲 271
第三部分 linux gui 生成器glade
第17章 glade:gui生成器 273
17.1 安装glade 273
17.1.1 glade简介 273
17.1.2 安装glade 273
17.1.3 在gnome主菜单下为glade
创建菜单项 274
17.1.4 在gnome面板上创建快捷
按钮 275
17.2 用glade生成图形用户接口 275
17.2.1 glade的界面简介 275
17.2.2 用glade创建应用程序界面 277
第四部分 调试工具
第18章 程序调试 283
18.1 用gdb调试应用程序 283
18.1.1 为调试程序做准备 283
18.1.2 获得gdb帮助 284
18.1.3 gdb常用命令 284
18.1.4 gdb 应用举例 286
18.2 用xxgdb调试应用程序 289
第五部分 附 录
附录a gnomehello源代码 293
附录b 在线资源 304
附录c gtk+/gnome对象总览 306
前言
第一部分 linux gui编程框架及编程基础
第1章 linux软件开发概述 1
1.1 关于linux 1
1.2 关于linux的桌面环境 2
1.3 linux系统中的软件开发 3
1.3.1 开发所使用的库 3
1.3.2 gnome的开发结构 4
1.4 开发linux应用程序的编程语言
和编程工具 6
1.5 本书的结构 7
第2章 gtk+/gnome开发简介 8
2.1 安装gtk+/gnome库 8
2.2 第一个gtk+应用程序 9
2.2.1 一个什么也不能做的窗口 9
2.2.2 示例代码的含义 9
2.2.3 gtk的hello world 10
2.2.4 gtk+的信号和回调函数原理 12
2.2.5 hello world代码解释 14
.2.2.6 运行helloworld 17
2.3 gnome应用程序 17
2.4 gnu c 编译器 18
2.4.1 使用 gcc 18
2.4.2 gcc 选项 18
2.5 初始化库 19
2.6 用popt分析参数 20
2.6.1 参数分析方法 20
2.6.2 gnomehello程序的参数分析 22
2.7 国际化 25
2.8 保存配置信息 27
2.8.1 读出存储的配置数据 28
2.8.2 在配置文件中存储数据 30
2.8.3 配置文件迭代器 30
2.8.4 节迭代器 33
2.8.5 其他的配置文件操作 33
2.9 会话管理 34
2.10 gtk+的主循环 36
2.10.1 主循环基本知识 36
2.10.2 退出函数 36
2.10.3 timeout函数 37
2.10.4 idle函数 37
2.10.5 输入函数 38
2.11 编译应用程序 39
2.11.1 生成源代码树 39
2.11.2 configure.in文件 41
2.11.3 makefile.am文件 43
2.11.4 安装支持文件 44
第二部分 linux 编程常用c 语言
函数库及构件库
第3章 glib库简介 49
3.1 类型定义 49
3.2 glib的宏 49
3.2.1 常用宏 49
3.2.2 调试宏 50
3.3 内存管理 52
3.4 字符串处理 53
3.5 数据结构 55
3.5.1 链表 55
3.5.2 树 59
3.5.3 哈希表 63
3.6 gstring 65
3.7 计时器函数 66
3.8 错误处理函数 67
3.9 其他实用函数 67
第4章 构件定位 69
4.1 构件的显现、映射和显示 69
4.2 其他的构件概念 70
4.3 构件的类型转换 72
4.4 组装构件 72
4.4.1 尺寸分配 73
4.4.2 gtkwindow构件 74
4.4.3 gtkbox 76
4.4.4 表格构件gtktable 79
4.4.5 固定容器构件gtkfixed 83
4.4.6 布局容器构件gtklayout 85
第5章 按钮构件 87
5.1 普通按钮gtkbutton 87
5.2 开关按钮gtktogglebutton 90
5.3 检查按钮gtkcheckbutton 91
5.4 无线按钮gtkradiobutton 91
第6章 调整对象 95
6.1 创建一个调整对象 95
6.2 使用调整对象 95
6.3 调整对象内部机制 96
第7章 文本构件gtktext 98
7.1 创建、配置文本构件 98
7.2 操作文本 99
7.3 键盘快捷键 100
7.4 gtktext示例 100
第8章 范围构件gtkrange 105
8.1 滚动条构件gtkscrollbar 105
8.2 比例构件gtkscale 105
8.2.1 函数和信号 105
8.2.2 常用的范围函数 106
8.2.3 键盘和鼠标绑定 107
8.2.4 示例 107
第9章 杂项构件 114
9.1 标签构件gtklabel 114
9.2 箭头构件gtkarrow 117
9.3 工具提示对象gtktooltips 119
9.4 进度条构件gtkprogressbar 120
9.5 对话框构件 126
9.6 pixmap 127
9.7 标尺构件gtkruler 134
9.8 文本输入构件gtkentry 137
9.9 微调按钮构件gtkspinbutton 140
9.10 组合框gtkcombo 146
9.11 日历构件gtkcalendar 148
9.12 颜色选择构件gtkcolorselect 158
9.13 文件选择构件gtkfileselect 162
第10章 容器构件gtkcontainer 165
10.1 事件盒构件gtkeventbox 165
10.2 对齐构件gtkalignment 166
10.3 框架构件gtkframe 167
10.4 比例框架构件gtkaspectframe 169
10.5 分栏窗口构件gtkpanedwindow 170
10.6 视角构件gtkviewport 174
10.7 滚动窗口构件gtkscrolled
window 175
10.8 按钮盒构件gtkbuttonbox 177
10.9 工具条构件gtktoolbar 181
10.10 笔记本构件gtknotebook 187
第11章 分栏列表构件gtkclist 193
11.1 创建分栏列表构件gtkclist 193
11.2 操作模式 193
11.3 操作分栏列表构件列标题 194
11.4 操纵列表 194
11.5 向列表中添加行 196
11.6 在单元格中设置文本和pixmap
图片 197
11.7 存储数据指针 198
11.8 处理选择 198
11.9 信号 199
11.10 gtkclist示例 199
第12章 树构件 204
12.1 创建新树构件 204
12.1.1 添加一个子树 204
12.1.2 处理选中的列表 205
12.1.3 树构件内部机制 205
12.1.4 信号 206
12.1.5 函数和宏 206
12.2 树项构件gtktreeitem 208
12.2.1 信号 209
12.2.2 函数和宏 210
12.3 树构件示例 210
第13章 gnomeapp构件和gnomeuiinfo 215
13.1 主窗口gnomeapp 215
13.2 gnomeuiinfo 216
13.2.1 创建gnomeuiinfo 216
13.2.2 将gnomeuiinfo转换为构件 218
第14章 状态条构件 221
14.1 状态条构件简介 221
14.2 gnomeappbar构件 221
14.3 状态条构件gtkstatusbar 222
第15章 对话框 225
15.1 gnomedialog构件 225
15.1.1 创建对话框 225
15.1.2 填充对话框 226
15.1.3 处理gnomedialog的信号 226
15.1.4 最后的修饰 227
15.2 模态对话框 229
15.3 一个对话框示例 230
15.4 特殊对话框 231
15.4.1 gnomeabout 231
15.4.2 gnomepropertybox—属性框 233
15.4.3 gnomemessagebox—消息框 234
第16章 gdk 基础 236
16.1 gdk和xlib 236
16.2 gdkwindow 237
16.2.1 gdkwindow和gtkwidget 237
16.2.2 gdkwindow属性 238
16.3 视件和颜色表 240
16.3.1 gdkvisual 240
16.3.2 视件的类型 241
16.3.3 颜色和gdkcolormap 242
16.3.4 获得颜色表 244
16.4 可绘区和pixmap 244
16.5 事件 245
16.5.1 事件类型 245
16.5.2 事件屏蔽 247
16.5.3 在gtk+中接收gdk事件 248
16.5.4 鼠标按键事件 250
16.5.5 键盘事件 252
16.5.6 鼠标移动事件 254
16.5.7 焦点变更事件 257
16.6 鼠标指针 257
16.6.1 指针定位 257
16.6.2 独占指针 258
16.6.3 改变光标 259
16.7 字体 259
16.8 图形上下文 263
16.9 绘图 267
16.9.1 画点 267
16.9.2 画线 268
16.9.3 矩形 268
16.9.4 画弧 269
16.9.5 多边形 269
16.9.6 文本 270
16.9.7 pixmap像素映射图形 270
16.9.8 rgb缓冲 271
第三部分 linux gui 生成器glade
第17章 glade:gui生成器 273
17.1 安装glade 273
17.1.1 glade简介 273
17.1.2 安装glade 273
17.1.3 在gnome主菜单下为glade
创建菜单项 274
17.1.4 在gnome面板上创建快捷
按钮 275
17.2 用glade生成图形用户接口 275
17.2.1 glade的界面简介 275
17.2.2 用glade创建应用程序界面 277
第四部分 调试工具
第18章 程序调试 283
18.1 用gdb调试应用程序 283
18.1.1 为调试程序做准备 283
18.1.2 获得gdb帮助 284
18.1.3 gdb常用命令 284
18.1.4 gdb 应用举例 286
18.2 用xxgdb调试应用程序 289
第五部分 附 录
附录a gnomehello源代码 293
附录b 在线资源 304
附录c gtk+/gnome对象总览 306
Linux应用程序开发指南:使用Gtk+/Gnome库
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×