第1章 Linux简介 1
1.1 什么是Linux 2
1.1.1 定义Linux 2
1.1.2 GNU与Linux 2
1.1.3 Linux的各种发行版本 2
1.2 Linux/UNIX的发展历史 3
1.2.1 UNIX的发展 3
1.3 Linux的特点 4
1.3.1 多用户多任务 4
1.2.2 Linux的简短历史 4
1.3.2 广泛可移植性 5
1.3.3 代码公开 6
1.3.4 优秀的网络性能 7
1.3.5 缺点 7
1.4 Linux的应用前景 8
1.5 小结 8
1.6 疑难解答 8
1.7 练习 9
第2章 Linux下软件开发基础 9
2.1.1 如何获得帮助 10
2.1 基本常识 10
2.1.2 代码的书写风格 12
2.1.3 关于函数库 15
2.1.4 NUIX正则表达式 15
2.2 使用编辑器 17
2.2.1 编辑器vi 17
2.2.2 使用KWrite 20
2.2.3 中文输入问题 21
2.3.1 准备开发工具 22
2.3 编译连接与调试 22
2.3.2 编写源代码 23
2.3.3 编译与连接 24
2.3.4 gcc/g++一些常用参数 25
2.3.5 调试 27
2.3.6 C与C++程序连接问题 32
2.4 其他实用工具 33
2.4.1 rpm包管理器 33
2.4.2 使用diff/patch为代码打补丁 36
2.4.3 压缩与备份 38
2.5.1 基本概念 39
2.5 使用和生成库 39
2.5.2 使用库 40
2.5.3 生成库 43
2.6 用Makefile维护程序 44
2.6.1 Makefile基本结构 45
2.6.2 定义规则 45
2.6.3 隐含规则 46
2.6.4 使用变量 47
2.6.5 简化Makefile的书写 47
2.7.1 简介 48
2.7 Automake和Autoconf简介 48
2.7.2 基本概念 49
2.8 版本控制--CVS简介 49
2.9 小结 50
2.10 疑难解答 50
2.11 练习 50
第三章 C++快速入门 51
3.1 简介 52
3.1.1 C++的特征 52
3.1.2 面向对象设计 55
3.2 C++基本语法 56
3.2.2 变量和运算符 57
3.2.1 语句和表达式 57
3.2.3 基本输入输出 58
3.2.4 数组和指针 59
3.2.5 程序控制 60
3.2.6 函数 61
3.3 用类建立对象 61
3.3.1 定义类 61
3.3.2 实现类 65
3.4.1 C++中的继承性 68
3.4 继承性 68
3.4.2 定义派生类 69
3.5 虚函数--多态的实现 71
3.5.1 定义虚函数 71
3.5.2 虚函数的实现与多态 72
3.6 小结 73
3.7 疑难解答 74
3.8 练习 74
第4章 X Window编程 77
4.1.2 X Window的特点和基本结构 78
4.1 X Window协议 78
4.1.1 X Window简介 78
4.1.3 X Window系统中程序设计的特点 83
4.2 X Window在Liux中的配置问题 85
4.2.1 用XF86Setup配置XFree86 86
4.2.2 用xf86config进行配置 87
4.2.3 在X Window中安装字体 92
4.3 汉化问题 94
4.3.1 外挂中文系统 94
4.3.2 修改X Server 95
4.4 直接基于 X Window编程 96
4.5 其他编程方法 99
4.6 小结 99
4.7 疑难解答 99
4.8 练习 100
第5章 Qt/KDE基础 101
5.1 Qt/KDE简介 102
5.1.1 Qt简介 102
5.1.2 KDE简介 103
5.2 安装与配置 104
5.2.2 安装Qt 105
5.2.1 获得源代码 105
5.2.3 安装KDE 109
5.3 小结 110
5.4 疑难解答 110
第6章 使用Q: Linux下最好的GUI开发包 111
6.1 Qt初控: Hello,world! 112
6.2 编程习惯 113
6.2.1 命名原则 113
6.2.2 编写文档 113
6.3.2 Qt的常用控件 114
6.3 Qt类概述 114
6.3.1 分类 114
6.4 对象间通信: Signal和Slot机制 118
6.4.1 原理 118
6.4.2 编写Slot 118
6.4.3 发送Signal 119
6.4.4 连接Slot与Signal 119
6.4.5 使用Signal-Slot的时候传递参数 120
6.4.6 使用Signal-Slot机制的例子 120
6.4.7 使用moc 122
6.5 基本的程序框架 123
6.5.1 编写main()函数 123
6.4.8 使用Signal-Slot机制需要注意的问题 123
6.5.2 编写主窗口 125
6.5.3 熟悉QWidget 126
6.5.4 编写Makefile 126
6.6 菜单和快捷键 127
6.6.1 弹出式菜单 127
6.6.2 使用快捷键 127
6.6.4 完整的例子 128
6.6.3 控制菜单项 128
6.7 工具条和状态栏 130
6.8 鼠标和键盘事件 131
6.8.1 处理鼠标事件 131
6.8.2 鼠标右键的弹出式菜单 133
6.8.3 处理键盘事件 133
6.9 对话框 134
6.9.1 使用标准对话框 134
6.9.2 定制对话框 136
6.10 基本控件 142
6.10.2 允许并隐藏控件 143
6.10.1 处理控件事件 143
6.10.3 按钮控件 146
6.10.4 文本控件 150
6.10.5 滚动条和数字显示器 152
6.11 高级控件 153
6.12 Qt中绘图 155
6.12.1 图形设备场景 155
6.12.2 坐标系统 156
6.12.4 使用图形对象 157
6.12.3 重载paintEvent()方法 157
6.12.5 画图的例子 158
6.13 开发自己的控件 161
6.14 一个完整的应用程序框架 163
6.15 使用Qt的工具类 172
6.15.1 关于模板 173
6.15.2 例子: 使用QList类实现链表 173
6.16 MDI编程 176
6.16.1 什么是MDI? 176
6.16.2 Qt中MDI的实现 176
6.16.3 创建MDI程序 177
6.18 使用拖放(Drag And Drop) 182
6.18.1 拖动 182
6.18.2 释放 182
6.17 国际化编程(i18n) 182
6.18.3 剪贴板 183
6.18.4 拖放动作 183
6.18.5 添加新的拖放类型 184
6.19 Qt中的多线程编程 186
6.19.1 Qt线程类 186
6.19.4 使用线程类需要注意的问题 189
6.19.2 线程安全的事件发送 189
6.19.3 Qt库的mutex 189
6.20 使用Qt Designer 190
6.20.1 熟悉Qt Designer 191
6.20.2 生成C++源代码 192
6.20.3 与主程序连接 193
6.21 调试的技巧 193
6.21.1 使用命令行参数 193
6.21.2 使用警告和调试消息 193
6.22 小结 194
6.21.3 使用调试宏 194
6.23 疑难解答 195
6.24 练习 195
第7章 多媒体编程 197
7.1 声音编程 198
7.1.1 扬声器编程 198
7.2.2 处理数字化声波 198
7.2.3 播放其它声音文件 200
7.2 静态图形 201
7.2.1 使用QPixmap 202
7.2.2 使用QImage 204
7.3 动画编程 209
7.3.1 图元动画 209
7.3.2 Qt中的动画支持 210
7.3.3 帧动画 211
7.4 OpenGL 3D技术 212
7.4.1 简介 212
7.4.2 安装 212
7.4.3 QGL Widget 212
7.6 疑难解答 214
7.5 小结 214
第8章 开发KDE程序: Qt的继续 217
8.1 KDE版的Hell,world! 218
8.1.1 编写代码 218
8.1.2 编译KDE程序 218
8.2 KDE程序框架结构 219
8.2.1 KAppliction 219
8.2.2 KTMainWindow 220
8.2.3 main()函数 220
8.3.1 基本知识 221
8.3 定制KDE控件 221
8.3.2 使用子控件 223
8.3.3 处理用户输入 223
8.4 对话框 224
8.4.1 KDE的标准对话框 224
8.5 生成帮助文档 227
8.5.1 为源代码中编写文档 228
8.5.2 为应用程序编写文档 232
8.6 KDE中的高级控件 239
8.6.1 HTML浏览器 239
8.6.2 拼写检查 242
8.6.3 使用地址薄 245
8.7 特殊的KDE程序 248
8.7.1 基于对话框的程序 248
8.7.2 单实例应用程序 250
8.7.3 面板Applet 252
8.8 调入和保存配置 254
8.9 会话管理 256
8.10 KDE中的多媒体技术 260
8.10.1 aRts/MCOP简介 260
8.10.2 编写模块 263
8.10.3 MCOP 267
8.10.4 标准接口 275
8.10.5 实现StereoEffect 277
8.10.6 除MCOP外的其它多媒体方法 281
8.10.7 MCOP的未来 283
8.11 小结 283
8.12 疑难解答 284
8.13 练习 284
第9章 使用KDevelop: Linux下的快速应用开发工具 285
9.1.1 简介 286
9.1 简介 286
9.1.2 KDevelop历史 287
9.2 安装与配置KDevelop 287
9.2.1 如何获得KDevelop 287
9.2.2 要求 287
9.2.3 编译和安装 288
9.2.4 启动KDevelop 289
9.2.5 安装程序 289
9.3.1 快速帮助 290
9.3 使用文档和帮助 290
9.3.2 状态栏帮助 291
9.3.3 配置HTML浏览器 291
9.3.4 使用文件浏览器 292
9.4 编辑器 293
9.4.1 管理项目文件 293
9.4.2 定位文件 295
9.4.3 利用键盘快捷操作 295
9.4.4 编辑窗口设置 297
9.4.5 查找和替换 298
9.5.1 主视图 299
9.5 使用KDevelop 299
9.5.2 类浏览器和文件浏览器 300
9.5.3 输出窗口 300
9.5.4 菜单条命令 301
9.5.5 工具条 306
9.5.6 键盘快捷键 307
9.6 开发KDevelop程序 310
9.6.1 KDevelop应用程序 310
9.6.2 KDevelop工具 311
9.6.3 开发过程 312
9.7 KDevelop项目 316
9.7.1 项目类型 316
9.7.2 新建项目 317
9.7.3 打开和关闭项目 318
9.7.4 编辑项目 318
9.7.5 编译和连接选项 320
9.7.6 外部项目 320
9.8 使用对话框编辑器 321
9.8.1 对话框编辑器视图 321
9.8.2 新建对话框 322
9.8.3 增加控件 323
9.8.5 设置属性 324
9.8.6 生成文件 324
9.9 集成调试 324
9.9.1 设置 324
9.8.4 控件编辑器 324
9.9.2 使用内置调试器 325
9.9.3 浮动工具条 326
9.10 CVS集成 327
9.10.1 创建仓库 327
9.9.4 共享库和断点 327
9.10.2 激活CVS支持 328
9.10.3 使用CVS命令 328
9.11 小结 329
9.12 疑难解答 329
9.13 练习 330
第10章 KDE中的高级主题 331
10.1 国际化 332
10.1.1 简介 332
10.1.2 国际化(i18n) 332
10.2.2 KDE的组件框架 335
10.2 使用KParts 335
10.2.1 组件和控件的区别 335
10.2.3 使用XML定义用户界面 336
10.2.4 只读和可读/可写部件 338
10.2.5 创建一个邮件 339
10.2.6 在共享库中使用部件 342
10.2.7 创建KParts应用程序 345
10.2.8 在同一窗口中嵌入多个部件 348
10.2.9 创建KPart插件 349
10.3.1 简介 351
10.3 DCOP桌面通信协议 351
10.3.2 底层技术 352
10.3.3 结构 354
10.3.4 DCOP编程接口 355
10.4 CORBA技术 357
10.4.1 COPBA简介 357
10.4.2 基本概念 359
10.5 小结 360
10.6 疑难解答 361
10.7 练习 361