gpt4 book ai didi

python - 列表框更新

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:09 25 4
gpt4 key购买 nike

当我运行它时,它只显示下载完成后的百分比,那么有没有办法让它在下载时显示?

listbox = Listbox(Admin)
listbox.grid(row=19, column=9)
def download0(runums, song):

chunks = 10000
dat = ''
runum = runums.replace(' ', '%20')
url = runum
down = urlopen(url)
downso = 0
tota = down.info().getheader('Content-Length').strip()
tota = int(tota)
while 1:
a = down.read(chunks)
downso += len(a)

if not a:
break
dat += a
percent = float(downso) / tota
percent = round(percent*100, 1)

sys.stdout.write(str(percent))
sys.stdout.flush()

sys.stdout.write("\b"*4)
listbox.insert(END, percent)

最佳答案

Tkinter 事件循环(由 mainloop() 启动)在单个线程上运行。它旋转,对事件(例如鼠标点击)使用react,重新绘制小部件等等。单击按钮开始下载时,控制权将传递给您的 download0() 函数。在控制权返回到事件循环之前,除非您告诉它们,否则任何小部件都不会重绘。

因此,在下载过程中,您需要告诉小部件重新绘制自身:

listbox.insert(END, percent)
listbox.update_idletasks()

关于python - 列表框更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com