第一部分 Tcl基础 2
第1章 Tcl的基本概念 2
1.1 Tcl命令 2
1.2 Hello ,World! 2
1.3 变量 3
1.4 命令替代 3
1.5 数学表达式 4
1.6 反斜杠替代 5
1.7 花括号和双引号的组合 5
1.8 过程 7
1.9 阶乘举例 9
1.10 有关变量的更多细节 10
1.11 有关数学表达式的更多细节 11
1.12 注释 12
1.13 替代和组合总结 13
1.14 要点 13
1.15 参考 14
第2章 开始 19
2.1 source命令 19
2.2 UNIX Tcl脚本 19
2.3 Windows 95开始菜单 21
2.4 Macintosh和ResEdit 21
2.5 console命令 21
2.6 命令行参数 22
2.7 预定义变量 23
第3章 Guestbook CGI程序 24
3.1 HTML快览 24
3.2 CGI动态页 25
3.3 guestbook.cgi脚本 26
3.4 定义表格及处理表格数据 31
3.5下一步 35
第4章 Tcl字符串处理 36
4.1 string命令 36
4.2 字符串和表达式 37
4.3 append命令 37
4.4 format命令 38
4.5 scan命令 40
4.6 字符串匹配 40
4.7 binary命令 41
4.8 相关章节 44
第5章 Tcl列表 45
5.1 Tcl列表 45
5.2 构造列表 46
5.3获取列表元素: llength、lindex和Irange 48
5.4 修改列表:Linsert和Lreplace 49
5.5 搜索列表:Lsearch 49
5.6 列表排序:Isort 50
5.8相关章节 52
5.7 join命令 52
第6章 控制结构命令 53
6.1 If Then Else 53
6.2 switch 54
6.3 while 56
6.4 foreach 57
6.5 for命令 59
6.6 break和continue 60
6.7catch 60
6.8 error 62
6.9 return 63
7.1 proc命令 64
第7章 过程和作用域 64
7.2 利用rename改变命令名 65
7.3 作用域 66
7.4 global命令 66
7.5 使用upvar按名称调用 67
7.6 使用upvar创建变量别名 68
第8章 Tcl数组 70
8.1 数组语法 70
8.2 array命令 72
8.3 利用数组创建数据结构 73
第9章 操作文件和程序 78
9.1 用exec运行程序 78
9.2 file命令 80
9.3 跨平台文件命名 81
9.4 操作文件和目录 83
9.5 文件属性 85
9.6 输入/输出命令总结 86
9.7 为I/O打开文件 87
9.8 读写操作 89
9.9 当前目录——cd和pwd 91
9.10 用glob匹配文件名 91
9.11 exit和pid命令 92
9.12 环境变量 93
第10章 eval命令 96
10.1 利用list构造命令 96
第二部分 Tcl高级编程 96
10.2 eval内部的concat 97
10.3 uplevel命令 100
10.4 连接参数的命令 102
10.5 subst命令 102
第11章 规则表达式 104
11.1 规则表达式语法 104
11.2 regexp命令 106
11.3 常用的规则表达式 108
11.4 regsub命令 109
11.5使用regsub给Tcl转换数据 109
11.6 其他使用规则表达式的命令 115
12.1 定位程序包:auto_path变量 116
第12章 脚本库和程序包 116
12.2 使用程序包 117
12.3 package命令 118
12.4 基于tclIndex文件的程序库 119
12.5 unknown命令 120
12.6 交互式的便利 121
12.7 Tcl外壳的库环境 122
12.8 编码风格 123
第13章 映像和调试 124
13.1 clock命令 124
13.2 info命令 126
13.4 跟踪变量数值 131
13.3 跨平台支持 131
13.8 交互命令历史 133
13.6 调试 135
13.7 Don Libes的调试器 136
13.8 调试Tk脚本 138
13.9 性能调整 139
第14章 名称空间 142
14.1 名称空间的用法 142
14.2 名称空间变量 143
14.3 命令查找 144
14.4 嵌套的名称空间 145
14.6 其他名称空间 146
14.5 过程导入 146
14.7 回叫和名称空间 147
14.8 自检 148
14.9 namespace命令 148
14.10 包装现有的程序包 149
14.11 [incr Tcl]对象系统 149
14.12 注释 150
第15章 事件驱动编程 152
15.1 Tcl事件循环 152
15.2 after命令 152
15.3 fileevent命令 153
15.4 vwait命令 154
15.5 fconfigure命令 155
第16章 Socket编程 159
16.1 客户socket 159
16.2 服务器socket 160
16.3 回显服务 161
16.4 用HTTP 获取URL 163
16.5 http包 171
第17章 多解释器和Safe-Tcl 175
17.1 interp命令 175
17.2 创建解释器 176
17.3 安全解释器 178
17.4 命令别名 179
17.5 隐藏命令 180
17.6 替代 181
17.7 安全解释器的I/O 182
17.8 安全库 183
17.9 安全策略 184
第三部分 Tk基础 194
第18章Tk初步 194
18.1 Tk的Hello,World! 195
18.2 命名Tk部件 196
18.3 配置Tk部件 196
18.4 Tk部件属性和资源数据库 197
18.5 Tk命令总结 198
第19章 例说Tk 200
19.1 ExecLog 200
19.2 浏览器示例 206
19.3 Tcl外壳 212
第20章 pack几何管理器 218
20.1 向边沿填充 218
20.2 水平堆叠和垂直堆叠 219
20.3 空腔模型 220
20.4 填充区域和显示区域 221
20.5 定位 226
20.6 填充次序 227
20.8 除去部件 229
20.7 选择父框架进行填充 229
20.9 填充器总结 230
20.10 窗体堆叠次序 231
第21章 grid几何管理器 232
21.1 基本网格 232
21.2 跨越行和列 235
21.3 行列约束 236
21.4 grid命令 238
第22章 place几何管理器 240
22.1 place基础 240
22.2 窗格管理器 241
22.3 place命令 245
23.1 bind命令 247
第23章 命令与事件的绑定 247
23.2 bindtags命令 248
23.3 事件用法 250
23.4 组合键 254
23.5 事件序列 255
23.6 虚拟事件 256
23.7 事件关键词 258
第四部分 Tk部件 262
第24章 按钮和菜单 262
24.1 按钮命令和作用域问题 262
24.2 Tcl变量相关的按钮 266
24.3 按钮属性 267
24.5 菜单和菜单按钮 269
24.4 按钮操作 269
24.6 调整菜单和菜单项 272
24.7 菜单属性 273
24.8 按名称引用菜单 275
第25章 资源数据库 280
25.1 资源介绍 280
25.2 加载选项数据库文件 281
25.3 添加单个数据库条目 282
25.4 数据库访问 283
25.5 自定义按钮 283
25.6 自定义菜单 285
26.1 框架和顶层窗体 290
第26章 简单的Tk部件 290
26.2 标签部件 292
26.3 消息框 294
26.4 标尺部件 296
26.5 bell命令 299
第27章 滚动条 300
27.1 滚动条的使用 300
27.2 滚动条协议 301
27.3 滚动条 304
第28章 输入项 306
28.1 使用输入项 306
28.2 输入项部件 307
第29章 列表框 311
29.1 列表框的用法 311
29.2 列表框绑定 314
29.3 列表框属性 317
第30章 文本框 319
30.1 文本索引 319
30.2 文本标记 321
30.3 文本标签 322
30.4 选择 326
30.5 标签绑定 327
30.6 文本搜索 328
30.7 嵌入部件 329
30.8 嵌入图像 330
30.9 透视文本框 331
30.10 文本框绑定 333
30.11 文本操作 335
30.12 文本框属性 336
第31章 画布 338
31.1 画布坐标 338
31.2 Hello, World! 339
31.3 极小极大标尺示例 341
31.4 画布对象 345
31.5 画布的操作 359
31.6 生成postscript 360
31.7 画布属性 362
31.8 提示 363
第五部分 Tk细节 366
第32章 选择和剪贴板 366
32.1 选择模型 366
32.2 selection命令 367
32.3 clipboard命令 368
32.4 选择句柄 369
第33章 焦点和对话框 374
33.1 标准对话框 374
33.2 定制对话框 376
33.3 focus、grab和tkwait序列 379
33.4 使用update实现动画 382
34.1 属性配置 384
第34章 Tk部件的属性 384
34.2 尺寸 385
34.3 边框和面型 386
34.4 焦点突出显示 387
34.5 填充和定位 388
第35章 颜色、图像和光标 391
35.1 颜色 391
35.2 调色板和视图 394
35.3 位图和图像 395
35.4 文本插入光标 399
35.5 鼠标光标 400
36.1 字体指定 402
第36章 字体和文本属性 402
36.2 X字体名称 404
36.3 字体尺寸 406
36.4 font命令 406
36.5 文本属性 407
36.6 网格、尺寸调整和几何图形 408
36.7 字体选择应用程序 408
第37章 send命令 413
37.1 send命令 413
37.2 通信过程 416
37.3 通过socket远程eval 418
38.1 wm命令 422
第38章 窗体管理器和窗体信息 422
38.2 winfo命令 426
38.3 tk命令 431
第39章 用户参数选项 432
39.1 程序默认文件 432
39.2 定义参数选项 433
39.3 参数选项用户界面 436
39.4 管理参数选项文件 439
39.5 跟踪参数选项变量变化 441
39.6 扩充参数选项包 442
第40章 绑定的用户界面 443
40.1 联合工作的列表框对 445
40.2 编辑界面 447
40.3 保存和加载绑定 448
第六部分 C语言编程 452
第41章 C和Tcl 452
41.1 利用Tcl C库函数 452
41.2 应用程序的结构 452
41.3 创建可加载的软件包 453
41.4 C命令过程 455
41.5 Tcl_Main和Tcl_AppInit 462
41.6 事件循环 467
41.7 调用C脚本 468
41.8 Expect的Tcl调试器 472
41.9 拼装Tcl程序 475
第42章C库函数概览 481
42.1 Tcl C库函数纵览 481
42.2 Tk C库函数概述 489
第43章 用C编写Tk部件 496
43.1 部件的数据结构 496
43.2 部件的类命令 497
43.3 部件的实例命令 499
43.4 属性配置和再配置 501
43.5 指定部件的属性 503
43.6 时钟显示 505
43.7 窗体的事件过程 509
43.8 最后清除 511
第44章 Tcl 7.4/Tk4.0 514
44.1 wish 514
44.2 废弃的功能 514
44.3 cget操作 514
44.4 输入焦点突出显示 514
第七部分 版本变革 514
44.5 绑定 515
44.6 滚动条接口 515
44.7 pack info 515
44.8 焦点 515
44.11 无线钮的值 516
44.12 输入项部件 516
44.10 内部按钮填充 516
44.9 send命令 516
44.13 菜单 517
44.14 列表框 517
44.15 不再有几何形状属性 518
44.16 文本框 518
44.17 颜色属性 518
44.18颜色分配和Tk的colormodel 519
44.19 画布的scrollincrement 519
44.20 选择 519
44.21 bell命令 519
45.1 跨平台脚本 520
第45章 Tcl 7.5/Tk4.1 520
45.2 clolck命令 521
45.3 load命令 521
45.4 package命令 521
45.5 多重foreach循环变量 521
45.6 事件循环从Tk 移植到Tcl 521
45.7 网络socket 522
45.8多重解释器和Safe-Tcl 522
45.9 grid几何形状管理器 522
45.10 文本框 522
45.11 输入项部件 523
46.2 虚拟事件 524
46.3 标准对话框 524
46.1 更多的文件操作命令 524
第46章 Tcl 7.6/Tk4.2 524
46.4新的grid几何管理器 525
46.5 Macintosh的unsupported 1命令 525
第47章 Tcl/Tk 8.0 526
47.1 Tcl编译器 526
47.2 名称空间 527
47.3 Safe-Tcl 527
47.4 新增的Isort命令 527
47.5 不再有tcl_precision变量 527
47.6 2000年问题 527
47.11 应用程序的嵌入 528
47.10 tk scaling命令 528
47.12 本地菜单和菜单条 528
47.7 HTTP软件包 528
47.9 独立于操作平台的字体 528
47.8 串行I/O 528
47.13 CDE边线宽度 529
47.14 本地按钮和滚动条 529
47.15 文本框中的图像 529
47.16 destroy不再出错 529
47.17 grid rowconfigure 529
47.18 最新变化 529
第48章 Safe-Tk和浏览器插件 531
48.1子解释器中的Tk 531
48.2 浏览器插件 533
48.3 安全策略和浏览器插件 535
48.4 配置安全策略 537
48.5 附注 537
附录 Tcl/Tk多媒体教室用户手册 538
A.1 系统要求 538
A.2 安装计算机教室 538
A.3 运行计算机教室 541
A.4 计算机教室的浏览 543
A.5 章的结构 545
A.6 与具体特征链接 546
A.7 技术支持 549