GTK+与Gnome应用开发指南

需积分: 9 4 下载量 99 浏览量 更新于2024-08-02 收藏 1.92MB PDF 举报
"这是一本关于GTK+和Gnome应用开发的书籍,作者为Havoc Pennington,由Red Hat Advanced Development Labs出版,New Riders Publishing发行,ISBN号为0-7357-0078-8。本书内容包括概述、构建Gnome应用程序、高级GTK+/Gnome技术以及附录,旨在帮助开发者掌握GTK+和Gnome环境下的应用开发技能。" 在《GTK+/Gnome Application Development》这本书中,作者深入浅出地介绍了相关技术,覆盖了从基础到高级的各种主题。以下是书中主要内容的详细说明: 1. **概述**:第一章对GTK+和Gnome技术进行了总体介绍,包括它们的历史、设计哲学以及在Linux和Unix平台上的应用情况。这部分内容有助于读者理解这两个库的基本概念和重要性。 2. **glib:可移植性和实用工具**:glib是GTK+的基础,提供了跨平台的函数库,包含各种数据结构、线程管理、内存管理和事件循环等功能。学习glib是理解GTK+和Gnome开发的关键。 3. **GTK+基础知识**:第二章和第三章快速讲解了GTK+编程的基础,包括窗口、控件、布局管理、信号机制等,让读者能够快速上手创建基本的用户界面。 4. **构建Gnome应用程序**:这部分内容介绍了如何设置源代码树,以及创建符合Gnome标准的应用程序。讲解了Gnome应用的基本结构,如GnomeApp作为主窗口,以及如何实现用户交互,例如使用对话框。 5. **Gnome应用基础**:涵盖了如何处理应用启动、初始化、注册元数据、图标、菜单和快捷键等,确保应用程序与Gnome桌面环境的无缝集成。 6. **GTK+对象和类型系统**:深入探讨了GTK+的面向对象特性,如类、对象、子类化以及类型注册,这对于自定义控件和扩展功能至关重要。 7. **GDK基础**:GDK是GTK+的图形设备接口,用于处理窗口系统的基本绘图操作,如画点、线、矩形,以及处理鼠标和键盘事件。 8. **编写GtkWidget**:指导读者如何从头创建自定义的GTK+小部件,这是扩展GTK+功能和设计独特界面的关键步骤。 9. **Gnome Canvas**:Gnome Canvas是一个可编程的绘图区域,允许开发者绘制复杂的图形和动画。书中详细讲述了如何使用和扩展Gnome Canvas来创建自定义的图形项。 10. **附录**:包含了GTK+/Gnome对象层次结构、头文件表、常见问题解答、在线资源和代码清单,是开发者查找参考资料和解决问题的宝贵资源。 通过阅读这本书,开发者不仅可以掌握GTK+和Gnome开发的基础,还能深入了解这些工具的高级特性,从而能够开发出功能丰富、用户体验优秀的桌面应用程序。
2010-10-22 上传
很不错的开发程序的教材 目 录 前言 第一部分 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