我输入了这样的剧本:
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
但对话框完成后,标签中的文字不会更改。 我该如何改进脚本?
答案 0 :(得分:4)
除非明确 另有说明,否则程序中的变量是本地的。试试这个:
proc Get_CMakeBin { } {
global cmakeBinName
set cmakeBinName [ tk_getOpenFile -initialdir / ]
}
您还应该知道-textvariable
选项采用变量名称,而不是内容。你应该这样写:
label .lb -width 24 -textvariable cmakeBinName