Python Tkinter动态自动滚动以查看列表

Python Tkinter动态自动滚动以查看列表,python,tkinter,Python,Tkinter,我计划在我的tkinter应用程序中创建一个“侧窗”,它只显示一个列表,并自动滚动到列表的底部 这样做的目的是,观众可以在一个巨大的屏幕上看到窗口,列表中的每个元素都是比赛参与者的分数 因此,我想要实现的是,例如: 窗口弹出,显示前5名参与者及其分数,然后缓慢向下移动,因此不会显示从第二名参与者到第六名参与者,然后从第三名参与者到第七名参与者等 我在滚动条中搜索了一些set选项,但没有找到任何选项,但在列表框中找到了yview选项。但是,当我尝试循环浏览一个列表框,并将其设置为yview然后休眠

我计划在我的
tkinter
应用程序中创建一个“侧窗”,它只显示一个列表,并自动滚动到列表的底部

这样做的目的是,观众可以在一个巨大的屏幕上看到窗口,列表中的每个元素都是比赛参与者的分数

因此,我想要实现的是,例如:

窗口弹出,显示前5名参与者及其分数,然后缓慢向下移动,因此不会显示从第二名参与者到第六名参与者,然后从第三名参与者到第七名参与者等

我在滚动条中搜索了一些
set
选项,但没有找到任何选项,但在
列表框中找到了
yview
选项。但是,当我尝试循环浏览一个
列表框
,并将其设置为
yview
然后休眠1秒时,它不会显示正确的元素,它实际上会等待整个持续时间,然后跳到最后一个元素

我使用的测试代码如下所示:

from tkinter import *
from time import sleep

def a():
    for i in range(1000):
        listbox.yview(i)
        sleep(1)

master = Tk()

scrollbar = Scrollbar(master)
scrollbar.pack(side=RIGHT, fill=Y)

listbox = Listbox(master, yscrollcommand=scrollbar.set)
for i in range(1000):
    listbox.insert(END, str(i))
listbox.pack(side=LEFT, fill=BOTH)

scrollbar.config(command=listbox.yview)
Button(master,text="start",command=a).pack()

mainloop()

有没有更好的方法来制作这样的东西?有没有办法更正我的代码,以便在每个睡眠周期后显示列表中的实际位置?

我找到了一个可行的解决方案,但它并不那么优雅


如果每次睡眠后我
master.update()
,它就会工作

我找到了一个可行的解决方案,但它并不那么优雅

如果每次睡眠后我
master.update()
,它就会工作