我是Python新手,在获取一些HTML文件/url的内容并用progressbar显示状态时遇到了一个问题:
这是我使用的相关代码:
进度条:
def createProgressbar(self):
self.progressbarVar = StringVar()
self.progressbar = ttk.Progressbar( self.masterWindow, variable=self.progressbarVar, length=400, maximum=100, mode='determinate' )
self.progressbar.place(x=100, y=760)
self.progressbarStatus = Label( self.masterWindow, text='Please wait ...', bg='#fafafa', fg='#333', bd=0 )
self.progressbarStatus.place(x=100, y=730)
阅读HTML:
^{pr2}$一般来说,这很好,但是当循环被处理时,整个界面只显示一个beachball(macos)。在循环的末尾,progressbar从0直接跳到100%。在
有没有更好的方法,不用挂断接口?在
不要一次性读取数据,那样会阻塞UI。相反,通过将字节量传递给
open.read()
,例如open.read(1024)
,读取少量数据(例如8192/1024字节)。读取数据后,使用app.update()
刷新UI,假设app是Tk实例(在代码的某个地方,您应该为Tk()
分配一些变量)。将其放入while循环中,并在read()
函数返回一个空字节字符串(b""
)时停止while查找,表示下载完成。不确定为什么progressbar从0跳到100%,我将运行代码并进行调查。在相关问题 更多 >
编程相关推荐