我已经输入了这样的脚本:
set cmakeBinName "noname"
proc Get_CMakeBin { } {
set cmakeBinName [ tk_getOpenFile -initialdir / ]
}
label .l -text { CMake bin: }
label .lb -width 24 -textvariable $cmakeBinName
button .cmb -text "..." -command Get_CMakeBin
grid .l .lb .cmb
但是标签中的文本在对话结束后不会改变。我该如何改进脚本?
过程中的变量是局部的,除非显式另有说明。试试这个:
proc Get_CMakeBin { } {
global cmakeBinName
set cmakeBinName [ tk_getOpenFile -initialdir / ]
}
您还应该注意,-textvariable
选项接受一个变量名称,而不是内容。你应该这样写:
label .lb -width 24 -textvariable cmakeBinName