Tcl/Tk 烹调书 - Tk 基础


Part-II - 第 4 步: 从 app2 向 app1 发送一个请求来发送一个缺省选项设置的列表

脚本

向 av2 添加两行脚本t:


tkwait visibility .rc.fff

send av {sendNow}

向 av 添加脚本:



proc sendNow {} {
global b
send av2 [list setCfg $b]
}

Tk 命令 tkwait 直到特定条件满足之前挂起进一步的处理(processing)。这主要用于做弹出对话框模型(modal)。这在进一步处理之前完成特定动作的实例中和有用(例如,一个在 Tcl/Tk 尝试打开一个文件之前要在一个弹出 fileselectionbox 选择这个文件)。

在向"av"发送一个 send 请求之前,av2 在基本框架在屏幕上出现之前一直等待。

注意: 尝试着没有这个命令看发生什么。再尝试在过程"setCFG"定义之前放置最后一行的 send av {sendNow}

send 是同步的。发送应用将挂起它的用户事件直到发送的脚本在远程应用中执行完成且发送返回结果。当发送应用在等待它自己的发送时,它可以响应从其他应用来的发送事件。

过程 sendNow 建立一个由两个元素的列表,其组成是字符串"setCfg" 和"b"的值。它接着把这个列表作为脚本传递到在同一个显示器/屏幕中的一个叫"av2"的 Tk 应用,并在av2中执行。

 

运行 av 和 av2

现在运行 av 接着运行 av2。你将见到一个按钮窗口出现。Resources 应用的基本框架将出现接着将建立选项。你将看到如下结果: