如何设置BWidget的ScrolledWindow的最大大小?

时间:2010-12-25 22:38:33

标签: scrollbar tcl tk bwidget

我在这样的代码中使用BWidget的{​​{1}}:

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的高度?即,当$ a的所有内容都可见时,我需要将.top的最大高度设置为该值。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

要设置顶层的最大高度,请使用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]
}