Tcl 如何通过-textvariable更新标签
我键入了这样的脚本:Tcl 如何通过-textvariable更新标签,tcl,tk,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
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
除非另有明确说明,否则过程中的变量是局部变量。试试这个:
proc Get_CMakeBin { } {
global cmakeBinName
set cmakeBinName [ tk_getOpenFile -initialdir / ]
}
您还应该知道-textvariable
选项采用的是变量名,而不是内容。你应该这样写:
label .lb -width 24 -textvariable cmakeBinName