【问题标题】:How to position a ScrolledWindow (tkinter) scrollbar at the bottom如何在底部放置 ScrolledWindow (tkinter) 滚动条
【发布时间】:2017-05-25 22:25:10
【问题描述】:

我正在 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,我不确定它是否适用于这种情况。任何帮助将不胜感激。

【问题讨论】:

    标签: python tkinter scrolledwindow


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我应该把这行代码放在哪里?在我打包支架框架之后,每次我在屏幕上(在创建按钮/文本的功能中)或其他地方放置新的东西?我已经尝试了几个地方,但到目前为止都没有成功
    • 每次你想滚动到底部。您可能需要先致电.update().update_idletasks(),让holder.window 有机会调整其新内容的大小。
    • 谢谢@jasonharper,我删除了我的错误答案。你的很棒;)
    猜你喜欢
    • 2017-06-07
    • 2015-08-12
    • 2014-12-12
    • 1970-01-01
    • 2017-06-28
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多