Tcl/Tk 扩展介绍Expect 仅仅是诸多 Tcl/Tk 扩展中的一个先驱者。几个是常规实用程序,而多数都是特定软件或应用程序。因为 Scriptics 仍然是所有 Tcl/Tk 的中央资源库,所以,对于进一步探索 Tcl/Tk,该站点上的 是有价值的资源。
在下面几屏中,我们将简要地看一下几个主要扩展,了解它们的显著特性和吸引人的地方。
[incr Tcl]、[incr Tk] 和更多...于 1993 提出的 [incr Tcl](读作 inker tickle)为 Tcl/Tk 提供面向对象的功能。[incr Tcl] 提供对象、类和名称空间等特性。这些特性使得带数据封装、组合和继承的 Tcl 来构建大项目变得更加容易。如下做到这一点:classname、objname 和 delete,都是对象命令。用 body、class 和 configbody 命令创建和编辑类。其它各种命令有 code、ensemble、find、local 和 scope。
图形化的 [incr Tcl] 是 [incr Tk]。该工具扩展为 GUI,它提供了可伸缩性和数据隐藏的简易性所需的相同 OO 功能,使得分割大的编程作业更容易。[incr Tk] 提供了一些新的基类:itk::Archetype、itk::Widget 和 itk::Toplevel。这些类与一组完整的方法互相补充。
构建于 [incr Tk] 基础上,是号称 Mega-Widget 集的 [incr Widgets]。该工具允许十分容易地定义和显示复杂对象,譬如文件选择框。借用 [incr Widgets] Web 页面,只是使用下面的命令就创建了左边的图像:fileselectiondialog .fsd ; .fsd activate.
可以从 的链接很容易地找到这些各种各样的扩展。
BLT 和 Tix为了对这一对特别的 GUI 和图形 Tcl/Tk 扩展同样的不公平(对它们都不公平处理),先向您介绍 BLT()。BLT 是一种 Tk 扩展,它提供了一些功能以便方便地创建多元素小部件,这对于简单的 Tk 极具挑战性。BLT 命令包括 table、graph、barchart、vector、spline、busy、bgexec、drag&drop、htext、bitmap、winop、watch 和 bltdebug。
接下来是 Tix,它表示 Tk Interface eXtension。Tix 的当前版本是4.0,它提供了 43 个命令,其中大多数命令要么是 Mega-widget 要么是用于构建 Mega-widget 的一些组件,还有一些实用程序。Tix 的 Web 站点 声称“有了 Tix,可以忘记 TK 小部件的琐碎细节并全神贯注于解决您手边的问题。”当用这些命令(如 tixDirList、tixFileSelectDialog、tixPopupMenu、tixScrolledWindow 等等)迅速地创建实用的界面时,您会很容易看到这项声称的基础。
TclX扩展的 Tcl,TclX 实际上不仅仅是另一种“扩展”。用作者的话来说,“扩展的 Tcl 面向系统编程任务和大的应用程序开发。TclX 为本机操作系统提供了附加接口以及许多新的编程结构、文本操作工具和调试能力。”可在 上找到 TclX 的在线主页。
在过去几年中,许多 TclX 的原始特性已使它成为核心的 Tcl 发布。然而,TclX 小组很有见识,将动态装入库和包、网络编程支持和提供命令访问的过程等这些特性添加到通常称作的 expr 数学函数和更多函数中。
大多数标准 Linux 分发版都带 TclX,它作为一个包,可以在安装 Linux 时,选择性地安装它。或者,可以从源代码编译它,与 Tcl 和 Tk 连接在一起。最近 TclX 版本的非常好的特性之一是名为 tclhelp 的程序,它是 Tcl 和 Tk 帮助浏览器,可以很方便地进行参照。强烈向您推荐。
访问扩展商场不出意料的话,对于这些流行的编程环境,除了我在本教程中所详尽讨论的一些之外,还有许多扩展。可以到 Scriptics 的 ,学习更多有关下面这张表中 Tcl 和 Tk 扩展所具有的一些能力:
- 允许访问从 dBase 文件到连接和查询工具箱中的所有东西。还可以找到许多其它与数据库相关的工具和实用程序。
- 添加了电子邮件、FTP、网络监控、分布式处理和 Palm 连接实用程序等功能。
- 包括 [incr Tcl] 和几个其它 OO Tcl 实现。这些包括 OTcl(MIT Object Tcl)、XOTcl、TOS、Tea(Java 样式的 Tcl OO)、stooop(Simple Tcl-Only Object Oriented Programming)和其它。
- 与我们看到过的 [incr Widgets]、BLT 和其它 Mega-widget 库一起,提供大量附加的 GUI 功能,从图像和视频处理小部件到笔记本和文档界面扩展。在为自己设计某些东西之前,一定要检查这个地方。
- 类别完全是一个各种扩展的集合,每个人都可以从中了解一些东西。从实现神经网络(LANE)的 alpha 工具箱,到数据转换、消息整理和密码包(Trf 和 TrfCrypto),到音频播放和录制能力(Snack)。
- 另外,还有专门针对 和 实现的 Tcl/Tk 扩展。如果您在这两个环境中的任意一个工作,则最好去访问一下。
|