Grid sticky 选项不会收缩 slave
Grid sticky option doesn't shrink slave
我正在尝试创建包含三个 canvases 的 GUI。
我要创建的视图如下:
--------------------------------------------
| | | |
| | | |
| | | |
| | | |
--------------------------------------------
左右两个窄canvas,中间一个大canvas。
这是我的代码:
#!/bin/sh
# \
exec wish "[=11=]"
canvas .lib
canvas .lef -background "black"
canvas .lay
grid .lib -row 0 -column 0 -sticky ns
grid .lef -row 0 -column 1 -sticky nsew
grid .lay -row 0 -column 2 -sticky ns
# Added as proposed by Donal Fellows
grid columnconfigure . 1 -weight 1
但是我得到了所有 canvas 相同尺寸的订单,而不是我上面描述的顺序。
网格几何管理器使用加权系统将额外的 space 重新分配给列(和行),但所有列(和行)都从零权重开始,因此额外的 space 不会默认情况下完全分配。您必须明确地为该列赋予非零权重。
grid columnconfigure . 1 -weight 1
请注意,权重适用于整个列,而不是其中的单个小部件,因此无法在添加小部件时设置权重。
如果 canvas 没有 'fix' 列宽,您可以在创建 canvas 时使用 -width
选项设置特定宽度:
canvas .lib -width 100
canvas .lef -background "black" -width 500
canvas .lay -width 100
在其他一切都相同的情况下,我得到的结果是:
如果你以后想改变canvas的宽度,你当然可以使用类似.lib configure -width 200
的东西来改变.lib
canvas的宽度200 像素
我正在尝试创建包含三个 canvases 的 GUI。
我要创建的视图如下:
--------------------------------------------
| | | |
| | | |
| | | |
| | | |
--------------------------------------------
左右两个窄canvas,中间一个大canvas。 这是我的代码:
#!/bin/sh
# \
exec wish "[=11=]"
canvas .lib
canvas .lef -background "black"
canvas .lay
grid .lib -row 0 -column 0 -sticky ns
grid .lef -row 0 -column 1 -sticky nsew
grid .lay -row 0 -column 2 -sticky ns
# Added as proposed by Donal Fellows
grid columnconfigure . 1 -weight 1
但是我得到了所有 canvas 相同尺寸的订单,而不是我上面描述的顺序。
网格几何管理器使用加权系统将额外的 space 重新分配给列(和行),但所有列(和行)都从零权重开始,因此额外的 space 不会默认情况下完全分配。您必须明确地为该列赋予非零权重。
grid columnconfigure . 1 -weight 1
请注意,权重适用于整个列,而不是其中的单个小部件,因此无法在添加小部件时设置权重。
如果 canvas 没有 'fix' 列宽,您可以在创建 canvas 时使用 -width
选项设置特定宽度:
canvas .lib -width 100
canvas .lef -background "black" -width 500
canvas .lay -width 100
在其他一切都相同的情况下,我得到的结果是:
如果你以后想改变canvas的宽度,你当然可以使用类似.lib configure -width 200
的东西来改变.lib
canvas的宽度200 像素