Tcl/Tk 烹调书 - 使用画布


目的

本章介绍 Tk 画布组件,它被用于显示由一个或多个画图的基本操作(primitive)组成的对象。它介入了一些 Tk 画布组件的特殊特征,象嵌入组件和给被显示的对象标签上名字(例如,选择在地图中的一个地区将调用一段播放这个地区风景介绍的视频节目 )。

Tk 画布支持额外的特征,象 Postscript 输出,滚动,查找(有给定属性或到给定点最近的对象),可编辑的文本和设备无关的协调(还支持基于象素的度量(dimension)规范(specification))。

你需要

在这一点上,假定读者读了前面的章节。本章使用了建立按钮,滚动条等的脚本,其详细描述在前面的章节中。

端盘子

Part-I:

建立一个简单的基于画布的应用,在按下某个按钮的时候动画一个文本串。

Part-II:

建立一个显示西欧的应用。当用户在一个国家上点击鼠标左键的时候,它的名字将在一个录入组件中显现。可替换的,当用户输入一个国家的名字,显示(ring)一个注解(note)并闪烁这个国家的区域。 

菜谱

这两部分的脚本(mo.tcl 和 eu.tcl) 在本书的 code 目录的 ch4 子目录下。

译者按:对象与物体在英文中是同一个单词。

Part-I

在 Part-I 的 animate.tcl 中分三步放置脚本。脚本在 ~cookbook/code/ch4/mo.tcl 中。

  1. 建立一个画布并在其中嵌入一个按钮组件。
  2. 写一个过程来动画(移动)在画布中的一个有标签的对象。
  3. 为动画建立一个对象并通过重新配置按钮组件来控制动画。

Part-II

假定你在一个叫 EU.tcl 的单一的 Tcl 脚本中放置下列三步的脚本。脚本在本书的代码目录的 ch4 下的文件 eu.tcl 中。

  1. 建立用来显示西欧地图数据一个画布、给用户输入国家名字的一个录入组件、清除画布和退出应用的按钮。
  2. 显示数据,为了在用户在一个国家的边界上点击时显示国家的名字,标签上国家的名字并加以绑定。
  3. 建立闪烁指定名字的国家的过程。