我是比较新的的Tcl / Tk,但一直与它的工作相当成功,不停的最后几个星期。 在大多数情况下它似乎相当简单。 不过,我最近打了障碍这可能是简单,但我似乎无法弄清楚。
我已经减少了我相当复杂的代码,其说明问题的几行。
我简单的例子产生两个labelframes在每一个简单的标签控件。 当我调整(即,扩大)主窗口中,我想“左”帧到仅在y方向上调整,我想“中间”帧到在x和y调整大小。 这些部件工作正常。
不过,我也想调整大小时帧保持“粘”在一起。 也就是说,我想要的“中间”框留卡住了反对“左”的框架时,他们都调整。 相反,我看到了两者之间不断扩大的缝隙。
再次,这是从一个更复杂的程序代码的简化位。 我试图避免在同一程序中混合栅格和包命令,并在原来的更复杂的程序,使用网格变得非常笨重。 因此,使用“包”的解决方案将是首选。 但是,适当的解释将是一个良好的开端。
我的小例子:
#!/usr/bin/wish
## Set up two main frames
set frameLeft [labelframe .frameLeft]
set frameMiddle [labelframe .frameMiddle]
pack $frameLeft -fill y -expand 1
pack $frameMiddle -fill both -expand 1
pack $frameLeft $frameMiddle -side left -anchor nw
## Instead of the previous 3 lines, I also tried:
#pack $frameLeft -fill y -expand 1 -side left -anchor nw
#pack $frameMiddle -fill both -expand 1 -side left -anchor nw
## Set up component in LEFT frame
set frameOne [labelframe $frameLeft.frameOne]
set labelOne [label $frameOne.labelOne -text "Label One:"]
pack $labelOne -anchor nw
pack $frameOne -anchor nw
## Set up component in MIDDLE frame
set frameTwo [labelframe $frameMiddle.frameTwo]
set labelTwo [label $frameTwo.labelTwo -text "Label Two:"]
pack $labelTwo -side left
pack $frameTwo -anchor nw