use*_*134 5 user-interface tk-toolkit tcl
我想制作一个可以隐藏和显示的框架.问题是Tk没有提供任何hide/unpack命令.我使用vtcl并且有一个选项"Window hode",它只隐藏顶层的窗口.现在我想隐藏一个框架,然后再次显示相同的框架.它可以被认为是拆开一个框架并显示另一个框架.我的代码可以是这样的:
proc show1hide2 { } {
global i top
if {$i == 1} {
unpack $top.frame1
pack $top.frame2
set i 0
} else {
unpack $top.frame2
pack $top.frame1
set i 1
}
}
Run Code Online (Sandbox Code Playgroud)
在此过程中,$top.frame1并且$top.frame2之前已填充并且$i因此切换值$top.frame1并且$top.frame2在调用此proc时交替显示.所有,我想知道的是,是否存在并且命令unpack可以帮助我做到这一点?顺便说一下,unpack这只是一个想法.
我认为包忘记命令可能是您正在寻找的:
proc toggle {} {
global state
if {$state == 1} {
pack forget .r
pack .g -side bottom -fill x
set state 0
} else {
pack forget .g
pack .r -side bottom -fill x
set state 1
}
}
set state 1
# Make the widgets
label .r -text "Red Widget" -bg red
label .g -text "Green Widget" -bg green
button .tog -text "Toggle" -command toggle
# Lay them out
pack .tog
pack .r -side bottom -fill x
Run Code Online (Sandbox Code Playgroud)