如何通过-textvariable更新标签

时间:2015-07-24 14:42:38

标签: tcl tk

我输入了这样的剧本:

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

但对话框完成后,标签中的文字不会更改。 我该如何改进脚本?

1 个答案:

答案 0 :(得分:4)

除非明确 另有说明,否则程序中的变量是本地的。试试这个:

proc Get_CMakeBin { } {
    global cmakeBinName
    set cmakeBinName [ tk_getOpenFile -initialdir / ]
}

您还应该知道-textvariable选项采用变量名称,而不是内容。你应该这样写:

label .lb -width 24 -textvariable cmakeBinName