1

我正在用 python 中的 tkinter 创建一个 gui。我创建了一个滚动条,这就是代码部分的样子:

beta_frame = Frame(width="500", height="680")
beta_frame.pack()
holder = ScrolledWindow(beta_frame, width=500, height=680)
holder.pack()
alpha_frame = holder.window

每次在屏幕上放置新内容时,我都想将此滚动条放在最底部(这显然会添加到底部我添加到屏幕上的唯一东西是标签和按钮),尽管我不确定如何做到这一点,我到处搜索。我想出的只是方法see,我不确定它是否适用于这种情况。任何帮助,将不胜感激。

4

1 回答 1

2

.see()是让 Tkinter 自动滚动到给定位置的常规方法,但该方法仅存在于具有内置滚动支持的小部件上 - 列表框、画布、文本和条目。Tix ScrolledWindow 使普通的 Frame 可滚动,因此不存在这样的方法。

看来这行代码会做你想做的事:

holder.tk.eval(holder.vsb['command'] + " moveto 1.0")

vsb是 ScrolledWindow 的垂直滚动条组件,'command'是滚动条配置选项,指定位置更改时要调用的回调。这将指代 Tix 内部的一些东西,但我们并不关心它到底是什么;如果被移动到最后,我们只需使用与滚动条本身相同的参数来调用它。

于 2017-05-26T15:29:40.697 回答