我在下面这样的代码中使用了BWidget的ScrolledWindow:
toplevel .top
set w [ScrolledWindow .top.scrolledWindow]
set f [ScrollableFrame $w.scrollableFrame -constrainedwidth true]
$w setwidget $f
set a [$f getframe]
# here goes some stuff in $a所以我得到了一个有垂直滚动条的窗口。当增加.top的高度时,一段时间后,$a中的所有内容都变得可见,滚动条消失,因为它不再需要。如何禁止进一步增加.top的高度?也就是说,我需要将.top的最大高度设置为当$a的所有内容都可见时的值。我该怎么做呢?
发布于 2010-12-26 19:12:11
要设置顶层的最大高度,可以使用wm maxsize,水平大小可能具有非常大的值。要获得它的当前大小,可以使用winfo height (在另一个维度中使用winfo width )。将这些组合在一起:
# 10k is just a "big" number
wm maxsize .top 10000 [winfo height .top]现在,BWidget的棘手之处在于它不会立即设置窗口的大小,甚至不会在第一次显示时设置窗口的大小。这意味着您必须猜测何时配置窗口。一件便宜的事情是把它放在未来的半秒内;毕竟,即使是专家用户也可能在与它交互之前至少花一点时间看一看。对after的操作如下所示:
# 500 milliseconds in the future
after 500 {
# 10k is just a "big" number
wm maxsize .top 10000 [winfo height .top]
}https://stackoverflow.com/questions/4531956
复制相似问题