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()
,它就会工作