如何与 pytube 库同时使用 tkinter 库来显示 Label 中的下载进度?

问题描述

我正在尝试使用 on_progress 回调函数标签显示下载视频的进度,但它仅在进度结束时被调用,或者可能每次都被调用但没有显示进度值。它仅在进度结束时以 100% 显示进度值。不知道问题出在哪里。

def on_progress(stream,chunk,bytes_remaining):
    total_size = stream.filesize
    bytes_downloaded = total_size - bytes_remaining
    percentage_of_completion = bytes_downloaded / total_size * 100
    per = str(int(percentage_of_completion)) + " %"
    url_label.config(text=per,fg="green")


def download():
    url = entry.get()
    file = YouTube(url)
    file.register_on_progress_callback(on_progress)
    file.register_on_complete_callback(on_complete(file))
    ready = file.streams.filter(progressive=True,file_extension="mp4",res="360p").first()
    ready.download()

root = Tk()
root.columnconfigure(0,weight=1)
entry = Entry(root,width=50)
entry.grid()
download_btn = Button(root,text="Download",width=12,bg="#3A3A3A",fg="white",command=download)
download_btn.grid()
url_label = Label(root,text="",font=("jost",10))
url_label.grid()
root.mainloop()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...