Tcl/Tk 烹调书 - Tk 基础


Part-II - 第 3 步:在 appl 2 中显示 appl 1 中组件的属性-值对的过程

脚本

向 av2 填加:



proc setCfg { b } { 

global aList vList

set maxl 0

foreach e $b {
	lappend aList [lindex $e 0]
	lappend vList [lindex $e 4]
	set a [lindex $e 0]
		if { [string length $a] > $maxl } {
		set maxl [string length $a]
		}
	}


set i 0

foreach a $aList {
	set ff [frame .rc.fff.sub$i]
	pack $ff
	label $ff.lab -text $a -width $maxl -anchor e
	entry $ff.ent
	bind $ff.ent  [list ValCh $a] 
	$ff.ent insert 0 [lindex $vList $i]
	pack $ff.lab $ff.ent -side left -in $ff
	incr i
	}

button .rc.fff.b -text "Close" -com {exit}
pack .rc.fff.b 

}

这个代码的多数类似于 Part-I。 过程 setCfg 接受一个列表,这个列表是通过一个组件命令(在这个例子中的 .r.b)完成动作"configure"的结果。因为这是个独立运行的应用程序,包含了一个按钮 .rc.fff.b ,它的文本是"Close"命令选项的值是"exit"的。

脚本中新的或变更的行被突出显示了。