Tcl/Tk 烹调书 - 使用扩展


第 1 步: 脚本

在你的当前工作目录中为这个例子建立一个叫 bltex.tcl 的脚本文件。 脚本中交错着斜体字的描述文本。


blt_graph .g
.g config -title {Do they meet?}
pack .g -padx 5 -pady 5

建立并包装 blt_graph 的一个实例 ".g",它的标题是 "Do they meet?"。



set x {.1 .2 .3 .4 .5 .6 .7 .8 .9}
set y {}
foreach i $x {
   set yt [expr pow($i,2)*(1-$i) ]
   lappend y $yt
}
.g element create curve1 -symbol diamond -x $x -y $y 


变量 x 被设置成包含范围从 0.1 到 0.9 的值的一个列表,而变量 y 被初始化成一个空列表。

对于 x 的每个值 i,用一个简单的算术表达式来计算 yt。注意使用了 Tcl expr 命令和 Tcl 数学表达式 pow。使用 Tcl 列表命令 lappend 把计算出的 yt 的值被填加到 y 上。

上面的最后一行调用组件命令 .g 来建立用一个用 curve1 来引用的元素。选项 -x-y 指定在曲线上的(x,y)点的列表。

"-symbol" 选项接受值 diamond and并用钻石形状的标记来突出(highlight) curve1 的节点。



set y2 {}
foreach i $x {
    set yt [expr pow($i,2)]
    lappend y2 $yt
}
.g element create curve2 -symbol cross -x $x -y $y2

上面的脚本建立第二条曲线 curve2,使用交叉标记来突出节点。


button .quit -text Quit -command exit
pack .quit -fill x

放置一个按钮来调用 exit 命令。

使文件 bltex.tcl 可执行。如果你有一个包含 blt 的超级 Tcl(参见第 9 章),你可以通过在命令行键入 stcl 来在交互模式下调用它(确保你给出了到 stcl 的正确的路径名)。作为替代,你可以调用 blt_wish

stclblt_wish 提示符键入 source bltex.tcl。结果将是: