Tcl/Tk 烹调书 - Tk 基础


目的

一个简单的例子将介绍使用 Tk 工具箱的基于组件的编程基础。同一个应用还演示了 Tk send 命令。

你需要

在这一点上,假定读者对 Tcl 语法和内建的 Tcl 命令足够的熟悉。如果你刚接触基于窗口的应用开发的术语或想对图形用户界面设计多知道一些,请阅读 Shiz Kobara [3] 写的 Visual Design with OSF/Motif 的介绍章节,这是一个很好的参考源。然而,Tk 使学习组件编程很容易,并且对掌握基础这个应用是足够简单的。快速教程提供了你需要的简要说明。

端盘子

浏览和修改一个按钮组件的属性的一个应用(配置选项)。在 part-II 中把应用程序分割成两部分并通过 send 通信。

菜谱

因为这个应用比几行脚本要多许多,我们建议你从一个叫 appl1.tcl 的文件建立、执行和编辑脚本 ,可能在目录 ~/examples/chapter1 下。建立一个目录 ~/examples/chapter1,cd 到它并使用你选择的编辑器来建立 appl1.tcl 文件。记住在你执行这个脚本前键入 chmod u+x appl1.tcl 来使这个文件可执行。

Part-I

  1. 建立包含按钮和一系列属性-值对的一个框架。
  2. 建立按钮并把它放置在父组件中,得到当前的配置选项(属性-值对的列表)。
  3. 在自己的框架内显示每个属性-值对,属性名在一个标签中,相关的值在一个录入组件中。
  4. 绑定录入组件中的事件到一个把属性修改成输入的新值的动作上。

Part-II

我们使用上面的应用来演示 Tk 命令 send。我们通过把 appl1 分割成两个应用来完成这个目标。 第一个只建立有文本串的按钮和退出的命令。它还包括改变了参数的过程 reJig。第二个应用包含用户在其中编辑值的资源表单(form)。两者间的通信使用 send 。

在这部分,你需要两个分开的 Tcl/Tk 脚本文件。在 ~examples/chapter1 下的文件 av 中放置 appl1 脚本,文件 av2 中放置 appl2 脚本。

 

译者按:

send 命令是依赖于 X11 的命令,在 MicroSoft Windows 2000/NT/9x 下使用依赖于 Win32API 的 dde 命令。余把 av.tcl 和 av2.tcl 改写成使用 dde 命令的 av.win.tcl 和 av2.win.tcl。余翻译了 dde 命令的手册页,仁者一看就清楚了。

 

  1. 建立 appl 1 - 有一个按钮的一个框架。
  2. 建立 appl 2 的基础 - 持有一系列属性-值对的一个框架。
  3. 在 app2 中显示 appl 1 的组件的属性-值对的过程。
  4. 从 app2 向 app1 发送一个请求来发送一个缺省选项设置的列表。
  5. 绑定在 appl 2 中的录入组件的事件到一个向 appl 1 发送被变更的值和属性名并调用 appl 1 中的一个动作来重新配置属性的动作上。