Tcl/Tk 烹调书 - 使用画布


Part-I - 第 1 步: 建立一个画布并在其中嵌入一个按钮组件。


frame .mv
wm title . "Animation in canvas"
pack .mv
canvas .mv.c 
pack .mv.c

button .mv.c.but -text Credits -command displayInfo

这个脚本建立一个画布".mv.c" 作为一个主框架".mv"的子组件。它还建立一个按钮".mv.c.but",有标签 "Credits" 和调用动作"displayInfo"的一个 -command 选项。

嵌入的组件

Tk 画布支持的一些项目类型是矩形、椭圆、Bezier 曲线、位图和窗体。画布在给定的 x,y 位置显示窗体作为一个组件并为这个组件提供几何管理器。这允许有自己的内置功能的预包装的构件可与一般和绘图一起获得,并使画布有超链接的能力。(例如,你可以把一个 BLT-graph 嵌入一个文本组件中与文本并排,或嵌入一个画布组件中并开发它自己的内置的能力来为缩放(zoom)到特定的图形区域中提供直接的交互)。

下列 Tcl/Tk 命令向上述脚本添加:在画布中的 x,y 位置 218,153 为".mv.c.but"建立一个窗体。


.mv.c create window 218 153 -window .mv.c.but

注意在这个简单的例子中,我们可是使用一个加了标签的文本串并使用标签绑定来调用"displayInfo",但是如果你想调用复杂的预制好了的解决方法,则嵌入组件的原理是强有力的和恰当的机制。

执行这个脚本将见到: