《Tcl/Tk入门经典 第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)奥斯特奥特,(美)琼斯著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302235170
  • 页数:540 页
图书介绍:本书介绍了Tcl语言、Tk工具集以及Tcl和C语言结合编程的相关内容。

第Ⅰ部分 Tcl语言 3

第1章 Tcl和Tk概览 3

1.1 从这里起步 3

1.2 用Tk编写“Hello,world!”程序 5

1.3 脚本文件 7

1.3.1 在Unix和Mac OS X中运行脚本 7

1.3.2 在Windows中执行脚本 8

1.3.3 在交互式解释器中运行脚本 8

1.4 变量与替换 8

1.5 控制结构 9

1.6 关于Tcl语言 11

1.7 事件绑定 12

1.8 Tcl和Tk的更多功能 14

第2章 Tcl语言的语法 16

2.1 脚本、命令和单词 16

2.2 处理命令 16

2.3 变量替换 18

2.4 命令替换 19

2.5 反斜线替换 20

2.6 双引号引用 21

2.7 大括号引用 22

2.8 参数展开 24

2.9 注释 25

2.10 正常返回和异常返回 26

2.11 有关替换的更多信息 27

第3章 变量 29

3.1 本章出现的命令 29

3.2 简单变量和set命令 30

3.3 Tcl的内部数据存储 30

3.4 数组 31

3.5 变量替换 32

3.6 多维数组 33

3.7 查询数组的元素 34

3.8 incr命令和append命令 35

3.9 移除变量:unset和array unset 36

3.10 预定义变量 36

3.11 其他变量功能预览 37

第4章 表达式 38

4.1 本章出现的命令 38

4.2 数值操作数 38

4.3 操作符及其优先级 39

4.3.1 算术操作符 40

4.3.2 关系操作符 40

4.3.3 逻辑操作符 41

4.3.4 按位操作符 41

4.3.5 选择操作符 41

4.4 数学函数 42

4.5 替换 43

4.6 字符串操作 44

4.7 列表操作 45

4.8 类型与转换 46

4.9 精度 46

第5章 字符串操作 47

5.1 本章出现的命令 47

5.2 取得字符:string index和string range 50

5.3 长度、大小写转换、裁剪以及重复 50

5.4 简单搜索 51

5.5 字符串比较 51

5.6 字符串置换 52

5.7 确定字符串类型 53

5.8 用format创建字符串 54

5.9 用scan解析字符串 56

5.10 通配符样式的模式匹配 57

5.11 使用正则表达式进行模式匹配 58

5.11.1 正则表达式的原子 58

5.11.2 正则表达式的分支和量词 61

5.11.3 逆向引用 62

5.11.4 非捕获子表达式 62

5.11.5 regexp命令 62

5.12 使用正则表达式进行替换 63

5.13 字符集专题 64

5.13.1 字符编码和操作系统 65

5.13.2 编码和通道输入/输出 65

5.13.3 转化字符串的编码格式 66

5.14 消息目录 66

5.14.1 使用消息目录 66

5.14.2 创建本地消息文件 67

5.14.3 在源字符串和翻译字符串中使用转换符 68

5.14.4 在命名空间中使用消息目录 69

5.15 二进制字符串 69

第6章 列表 73

6.1 本章出现的命令 73

6.2 基本列表结构与lindex和llength命令 74

6.3 创建列表:list、concat和lrepeat 76

6.4 修改列表:lrange、linsert、lreplace、lset和lappend 77

6.5 从列表中取得元素:lassign 79

6.6 搜索列表:lsearch 79

6.7 排序列表:lsort 80

6.8 在字符串和列表之间转化:split与join 81

6.9 用列表创建命令 82

第7章 字典 84

7.1 本章出现的命令 84

7.2 基本字典结构与dict get命令 86

7.3 创建和更新字典 88

7.4 检测字典:子命令size、exists、keys和for 89

7.5 更新字典中的值 90

7.6 使用嵌套字典 92

第8章 流程控制 96

8.1 本章出现的命令 96

8.2 if命令 97

8.3 switch命令 98

8.4 循环命令:while、for和foreach 100

8.5 循环控制:break与continue 101

8.6 eval命令 102

8.7 从文件运行:source 103

第9章 过程 104

9.1 本章出现的命令 104

9.2 过程基础:proc与return 105

9.3 局部和全局变量 106

9.4 参数变量的数目和默认设置 106

9.5 传引用调用:upvar 107

9.6 创建新的控制结构:uplevel 109

9.7 应用匿名过程 110

第10章 命名空间 112

10.1 本章出现的命令 112

10.2 在命名空间中处理Tcl脚本 114

10.3 操作限定名称 116

10.4 在命名空间中导出和导入命令 117

10.5 检查命名空间 118

10.6 有关集合命令 119

10.6.1 基本的集合命令 119

10.6.2 在集合命令中设置集合命令 120

10.6.3 控制集合命令的设置 121

10.6.4 管理集合unknown子命令 121

10.7 访问其他命名空间的变量 123

10.8 名称解析路径的控制 124

第11章 访问文件 126

11.1 本章出现的命令 126

11.2 操纵文件和目录名 128

11.3 当前工作目录 130

11.4 列出目录的内容 130

11.5 处理磁盘上的文件 132

11.5.1 创建目录 132

11.5.2 删除文件 132

11.5.3 复制文件 133

11.5.4 重命名和移动文件 133

11.5.5 文件信息命令 134

11.5.6 处理名称怪异的文件 135

11.6 读写文件 135

11.6.1 基本文件I/O 135

11.6.2 输出缓冲区 137

11.6.3 处理各平台的行结束约定 137

11.6.4 管理字符编码集 139

11.6.5 处理二进制文件 139

11.6.6 随机访问文件 139

11.6.7 复制文件内容 140

11.7 虚拟文件系统 142

11.8 系统调用中的错误 143

第12章 进程间通信 144

12.1 本章出现的命令 144

12.2 用exit终止Tcl进程 145

12.3 用exec调用子进程 146

12.4 命令管线的输入输出 148

12.5 配置通道选项 149

12.5.1 通道阻塞模式 149

12.5.2 通道的缓冲模式 150

12.6 事件驱动的通道交互 150

12.6.1 用vwait进入Tcl事件循环 151

12.6.2 注册文件事件处理器 151

12.7 进程ID 153

12.8 环境变量 153

12.9 TCP/IP套接字通信 153

12.9.1 创建客户通信套接字 154

12.9.2 创建服务器套接字 155

12.10 向Tcl程序发送命令 157

12.10.1 send基础 157

12.10.2 应用程序名称 157

12.10.3 有关send的安全问题 158

第13章 错误与异常 159

13.1 本章山现的命令 159

13.2 在出现错误后会发生什么 160

13.3 由Tcl脚本生成错误 161

13.4 用catch捕获错误 161

13.5 异常概述 162

13.6 后台错误与bgerror 164

第14章 创建与使用Tcl脚本库 166

14.1 本章出现的命令 166

14.2 load命令 168

14.3 库的使用 168

14.4 自动加载 168

14.5 包 170

14.5.1 包的使用 170

14.5.2 包的创建 170

14.5.3 使用∷pkg∷create 172

14.5.4 包的安装 172

14.5.5 包的实用命令 172

14.6 Tcl模块 173

14.6.1 使用Tcl模块 173

14.6.2 安装Tcl模块 174

14.7 把脚本打包为Starkit 175

14.7.1 安装Tclkit 176

14.7.2 创建Starkit 176

14.7.3 创建平台相关的可执行文件 178

第15章 Tcl内部管理 179

15.1 本章出现的命令 179

15.2 时间延迟 183

15.3 时间和日期操作 184

15.3.1 产生可读的时间和日期字符串 184

15.3.2 扫描可读的时间和日期字符串 186

15.3.3 进行时间计算 187

15.4 运行计时命令 188

15.5 info命令 188

15.5.1 有关变量的信息 188

15.5.2 有关过程的信息 189

15.5.3 有关命令的信息 190

15.5.4 Tcl解释器版本及其他运行环境信息 191

15.6 对简单变量的跟踪操作 191

15.7 跟踪数组变量 194

15.8 重命名和删除命令 194

15.9 跟踪命令 195

15.10 未知命令 197

15.11 从解释器 198

15.11.1 命令别名 200

15.11.2 安全从解释器和隐藏命令 201

15.11.3 解释器之间的传输通道 202

15.11.4 为解释器设定限制 203

第16章 历史 205

16.1 本章出现的命令 205

16.2 历史列表 206

16.3 描述事件 206

16.4 从历史列表中再次执行命令 207

16.5 利用unknown实现的快捷方式 207

16.6 当前事件号:history nextid 208

第Ⅱ部分 编写Tk脚本 211

第17章 Tk入门 211

17.1 窗口系统简介 211

17.2 组件 213

17.3 应用、顶层组件和屏幕 214

17.4 脚本和事件 215

17.5 创建和删除组件 216

17.6 几何管理器 216

17.7 组件命令 217

17.8 互连命令 218

第18章 Tk组件概览 219

18.1 组件基础 219

18.2 框架 221

18.2.1 浮雕选项 221

18.2.2 屏幕距离选项 221

18.3 颜色选项 222

18.4 顶层 223

18.5 标签 223

18.5.1 文本选项 223

18.5.2 字体选项 224

18.5.3 图像选项 224

18.5.4 复合选项 225

18.6 标签框架 225

18.7 按钮 226

18.7.1 复选按钮 226

18.7.2 单选按钮 227

18.7.3 菜单按钮 228

18.8 列表框 229

18.9 滚动条 229

18.9.1 移动单个的组件 230

18.9.2 多个组件的同步滚动 231

18.10 标尺 232

18.11 输入框 233

18.11.1 输入框组件 233

18.11.2 调节框 234

18.11.3 show选项 234

18.11.4 验证 235

18.12 菜单 236

18.12.1 下拉菜单 237

18.12.2 级联菜单 238

18.12.3 键盘遍历和快捷键 239

18.12.4 针对平台的菜单 240

18.12.5 弹出式菜单 240

18.13 分栏窗口 241

18.14 标准对话框 243

18.15 其他的常见选项 244

18.15.1 组件状态 244

18.15.2 组件尺寸选项 244

18.15.3 锚定选项 245

18.15.4 内部补白 245

18.15.5 光标选项 246

第19章 主题组件 247

19.1 比较经典组件和主题组件 247

19.2 组合框 249

19.3 记事本 249

19.4 进度条 251

19.5 分隔符 252

19.6 尺寸控制柄 252

19.7 目录树 252

19.7.1 管理目录树条目 252

19.7.2 控制目录树的列和标题 255

19.7.3 目录树条目选择管理 256

19.7.4 目录树条目标记 257

19.8 主题组件状态 258

19.9 主题组件样式 259

19.9.1 使用主题 260

19.9.2 样式的元素 260

19.9.3 创建和配置样式 261

19.10 其他标准主题组件选项 263

第20章 字体、位图和图像 264

20.1 本章出现的命令 264

20.2 font命令 265

20.2.1 控制和使用命名字体 266

20.2.2 其他的字体应用 269

20.2.3 字体描述 269

20.3 image命令 270

20.3.1 位图图像 271

20.3.2 相片图像 271

20.3.3 图像和命名空间 275

第21章 几何管理器 277

21.1 本章出现的命令 277

21.2 几何管理器概览 278

21.3 网格管理器 279

21.3.1 grid命令和-sticky选项 282

21.3.2 跨行和跨列 283

21.3.3 拉伸行为与-weight和-uniform选项 283

21.3.4 相对位置字符 284

21.4 打包器 285

21.4.1 pack命令和-side选项 287

21.4.2 充满 288

21.4.3 扩充 288

21.4.4 锚定 290

21.4.5 打包顺序 290

21.5 补白 291

21.6 定位器 291

21.7 层级结构几何管理 292

21.8 组件堆栈顺序 293

21.9 其他几何管理器选项 294

21.10 Tk里的其他几何管理器 295

第22章 事件和绑定 297

22.1 本章出现的命令 297

22.2 事件 298

22.3 bind命令概览 299

22.4 事件模式 300

22.5 事件序列 301

22.6 脚本中的置换 301

22.7 解决冲突 302

22.8 事件绑定层级结构 303

22.9 事件何时被处理 304

22.10 命名虚拟事件 305

22.11 生成事件 307

22.12 逻辑动作 308

22.13 绑定的其他用途 310

第23章 画布组件 311

23.1 画布基础:条目和类型 311

23.2 控制带标识符和标记的条目 313

23.3 绑定 315

23.4 画布滚动 318

23.5 生成Postscript 319

第24章 文本组件 321

24.1 文本组件的基本原理 321

24.2 文本索引与记号 323

24.3 搜索与替换 324

24.4 文本标记 325

24.4.1 标记选项 326

24.4.2 标记优先级 328

24.4.3 标记绑定 328

24.5 虚拟事件 329

24.6 嵌入式窗口 329

24.7 嵌入图像 330

24.8 撤销 331

24.9 同级文本组件 334

第25章 选择与剪贴板 336

25.1 本章出现的命令 336

25.2 选择、检索和类型 337

25.3 定位和清除选择 338

25.4 用Tcl脚本提供选择 339

25.5 clipboard命令 340

25.6 拖曳和释放 341

第26章 窗口管理器 342

26.1 本章出现的命令 342

26.2 窗口尺寸 344

26.3 窗口位置 346

26.4 网格化窗口 346

26.5 窗口状态 347

26.6 装饰 348

26.7 特殊处理:瞬态、组和覆盖-重定向 349

26.8 针对系统的窗口属性 349

26.9 可停靠的窗口 350

26.10 关闭窗口 351

26.11 会话管理 352

第27章 焦点、模态交互与自定义对话框 353

27.1 本章出现的命令 353

27.2 输入焦点 354

27.2.1 焦点模式:显式与隐式 354

27.2.2 设置输入焦点 355

27.2.3 查询输入焦点 355

27.3 模态交互 356

27.3.1 攫取 356

27.3.2 局部和全局攫取 357

27.3.3 攫取中的键盘处理 357

27.3.4 等待:tkwait命令 358

27.4 自定义对话框 359

第28章 更多配置选项 363

28.1 本章出现的命令 363

28.2 选项数据库 364

28.3 选项数据库条目 364

28.4 RESOURCE_MANAGER属性和.Xdefaults文件 365

28.5 选项数据库的优先级 366

28.6 option命令 367

28.7 configure组件命令 367

28.8 cget组件命令 368

第29章 关于Tk的其他内容 369

29.1 本章出现的命令 369

29.2 删除组件 370

29.3 update命令 370

29.4 关于组件的信息 371

29.5 tk命令 371

29.6 Tk控制的变量 372

29.7 响铃 373

第Ⅲ部分 C语言中Tcl应用程序的编写 377

第30章 Tcl与C语言的集成原理 377

30.1 Tcl与C:如何选用 378

30.2 资源名称——把C结构连接到Tcl 379

30.3 “面向动作”与“面向对象” 380

30.4 描述性信息 381

第31章 解释器 382

31.1 本章出现的函数 382

31.2 解释器概述 383

31.3 简单的Tcl应用程序 384

31.4 删除解释器 385

31.5 多重解释器 385

第32章 Tcl对象 387

32.1 本章出现的函数 387

32.2 字符串对象 390

32.3 数值对象 390

32.4 从对象中获取C语言数据 391

32.5 Tcl对象的动态本质 391

32.6 字节数组 392

32.7 复合对象 392

32.8 引用计数 393

32.9 共享对象 393

32.10 新的对象类型 394

32.11 解析字符串 395

32.12 内存分配 395

第33章 处理Tcl代码 397

33.1 本章出现的函数 397

33.2 处理Tcl代码 398

33.3 动态创建脚本 399

33.4 Tcl表达式 400

第34章 访问Tcl变量 401

34.1 本章出现的函数 401

34.2 设置变量值 403

34.3 读取变量 404

34.4 删除变量 405

34.5 链接Tcl和C变量 405

34.6 设置与删除变量跟踪 407

34.7 跟踪回调 407

34.8 全数组跟踪 409

34.9 多重跟踪 409

34.10 删除回调 409

第35章 创建新的Tcl命令 411

35.1 本章出现的函数 411

35.2 命令函数 413

35.3 注册命令 414

35.4 果协议 416

35.5 Tcl_AppendResult 416

35.6 Tcl_SetResult和interp->result 416

35.7 clientData和删除回调 418

35.8 删除命令 420

35.9 获取与设置命令参数 420

35.10 Tcl过程如何工作 422

35.11 命令跟踪 423

第36章 扩展包 424

36.1 本章出现的函数 424

36.2 Init函数 425

36.3 包 425

36.4 命名空间 426

36.5 Tcl占位符 426

36.6 ifconfig扩展包 427

第37章 嵌入Tcl 433

37.1 本章出现的函数 433

37.2 将Tcl添加到应用程序 433

37.3 初始化Tcl 434

37.4 创建新的Tcl外壳 435

第38章 异常 437

38.1 本章出现的函数 437

38.2 完成代码 438

38.3 设置errorCode 440

38.4 管理返回的选项字典 441

38.5 在errorInfo中添加堆栈跟踪 441

38.6 TcL_Panic 444

第39章 字符串工具 445

39.1 本章出现的函数 445

39.2 动态字符串 449

39.3 字符串匹配 452

39.4 正则表达式匹配 453

39.5 处理字符编码 454

39.6 处理Unicode和UTF-8字符串 455

39.7 命令完整性 457

第40章 哈希表 459

40.1 本章出现的函数 459

40.2 关键字和值 461

40.3 创建和删除哈希表 461

40.4 创建条目 462

40.5 查找已存在的条目 463

40.6 搜索 464

40.7 删除条目 465

40.8 统计 465

第41章 列表和字典对象 467

41.1 本章出现的函数 467

41.2 列表 469

41.3 字典 471

第42章 通道 475

42.1 本章出现的函数 475

42.1.1 基本通道操作 475

42.1.2 通道注册函数 478

42.1.3 通道属性函数 478

42.1.4 通道查询函数 479

42.1.5 通道类型定义函数 480

42.2 通道操作 480

42.3 注册通道 482

42.4 标准通道 484

42.5 创建新的通道类型 484

42.5.1 创建自定义通道实例 485

42.5.2 堆叠通道 485

42.5.3 ROT13通道 486

第43章 事件处理 492

43.1 本章出现的函数 492

43.2 通道事件 493

43.3 时间处理器 495

43.4 休眠回调 496

43.5 调用事件调度器 497

第44章 文件系统的交互 500

44.1 Tcl文件系统函数 500

44.2 虚拟文件系统 502

第45章 操作系统工具 503

45.1 本章出现的函数 503

45.2 进程 504

45.3 收割子进程 506

45.4 异步事件 507

45.5 信号名称 509

45.6 退出与清理 509

45.7 其他 510

第46章 线程 511

46.1 本章出现的函数 511

46.2 线程安全 512

46.3 构建支持线程的Tcl 512

46.4 创建线程 512

46.5 终止线程 513

46.6 互斥体 513

46.7 条件变量 514

46.8 其他 515

第47章 构建Tcl及其扩展 517

47.1 构建Tcl和Tk 517

47.1.1 在Unix中构建Tcl和Tk 518

47.1.2 在Mac OS上构建Tcl和Tk 519

47.1.3 在Windows中构建Tcl和Tk 519

47.2 Tcl扩展架构(TEA) 520

47.2.1 TEA标准配置选项 521

47.2.2 TEA扩展包的目录结构 521

47.2.3 定制aclocal.m4文件 522

47.2.4 定制configure.in文件 522

47.2.5 定制Makefile.in文件 525

47.2.6 在Windows中构建扩展包 525

47.3 构建嵌入的Tcl 525

第Ⅳ部分 附录 529

附录A 安装Tcl和Tk 529

A.1 版本 529

A.2 Tcl发布包 529

A.3 ActiveTcl 530

A.4 Tclkit 530

A.5 用发布的源码编译Tcl/Tk 530

附录B 扩展包和应用程序 531

B.1 获取和安装扩展包 531

B.1.1 手动安装扩展包 531

B.1.2 为ActiveState TEApot档案库安装扩展包 531

B.2 TkCon扩展控制台 533

B.3 标准Tcl库:Tcllib 533

B.4 Img提供的额外的图形格式 534

B.5 Snack提供的声音支持 534

B.6 面向对象的Tcl 534

B.7 多线程Tcl脚本 535

B.8 XML编程 535

B.9 数据库编程 536

B.10 整合Tcl和Java 536

B.11 SWIG 537

B.12 Expect 537

B.13 扩展Tcl 538

附录C Tcl资源 539

C.1 在线资源 539

C.2 书籍 540