Python 如何确定tkinter中进度条的值(它只在中间结束)
我在将值更新到进度条时遇到问题,当我运行程序时,进度条卡在中间(只需单击下面的“problem Here”按钮,它解释了我的意思),代码成功运行,没有任何错误 以下是我使用的代码:Python 如何确定tkinter中进度条的值(它只在中间结束),python,tkinter,python-3.7,Python,Tkinter,Python 3.7,我在将值更新到进度条时遇到问题,当我运行程序时,进度条卡在中间(只需单击下面的“problem Here”按钮,它解释了我的意思),代码成功运行,没有任何错误 以下是我使用的代码: self.bytes = 0 self.max_bytes = 0 self.progressbarframe = Frame(self.frameoutput, bg=self.bgcolor) self.progressbarframe.place(relx=0.355,rely=0.78,relwidth=0
self.bytes = 0
self.max_bytes = 0
self.progressbarframe = Frame(self.frameoutput, bg=self.bgcolor)
self.progressbarframe.place(relx=0.355,rely=0.78,relwidth=0.605)
self.progressbar = Progressbar(self.progressbarframe, orient=HORIZONTAL, mode='determinate')
self.progressbar.pack(fill=X)
def progress(curvalue, maxval):
self.progressbar['value'] = curvalue
self.progressbar['maximum'] = maxval
def cb(total, recvd, ratio, rate, eta):
self.bytes += recvd
self.max_bytes += total
if self.bytes <= self.max_bytes:
self.progressbar.after(50, progress(self.bytes, self.max_bytes))
self.progressbar.update()
self.videos = pafy.new(str(self.entryyturl.get()))
self.videodownload = self.videos.allstreams
self.videodownload = self.videodownload[-int(self.data['mediatypes'].index(self.resolutionbox.get()))-1]
self.videodownload.download(quiet=True, filepath='download/{}.{}'.format(self.videodownload.title, self.videodownload.extension), callback=cb)
self.bytes=0
self.max_字节=0
self.progressbarframe=Frame(self.frameoutput,bg=self.bgcolor)
self.progressbarframe.place(relx=0.355,rely=0.78,relwidth=0.605)
self.progressbar=progressbar(self.progressbarframe,orient=水平,mode='determinate')
self.progressbar.pack(填充=X)
def进度(曲线值,最大值):
self.progressbar['value']=曲线值
self.progressbar['maximum']=maxval
def cb(总、回收、比率、速率、预计到达时间):
self.bytes+=recvd
self.max_字节+=总计
如果self.bytes可能在不仔细查看代码的情况下复制,请尝试将此更改:self.progressbar.after(50,progress(self.bytes,self.max_bytes))
更改为:self.progressbar.after(50,lambda:progress(self.bytes,self.max_bytes))
添加print(curvalue,maxval)
以查看您得到了什么。